SAP 的 BAPI 函数提交问题

219 天前
 VersionGod1
各位大佬,SAP 调用 BAPI 函数成功后,用 BAPI_TRANSACTION_COMMIT 函数提交失败,一直排查不出原因,有可以提供些思路的大哥吗
1076 次点击
所在节点    Java
8 条回复
tankren
219 天前
FM 调用之后先要判断 sy-subrc 或者 bapiret 内表是否有错误,没有问题才可以 commit
你在 CALL FUNCTION BAPI_TRANSACTION_COMMIT 设个断点看一下前面的 BAPI 返回值吧
tankren
219 天前
PS: 我只是顾问,非 ABAPer
VersionGod1
211 天前
@tankren 不好意思之前没看到,调用是没有错误的。后来排查出原因是调用 BAPI 写入 SAP 的过程中,数据可能还没存入 SAP 数据库中,等 1s 去调用 commit 就好了。
VersionGod1
211 天前
@tankren 不好意思记错了,那是另一个问题的解决方法,这个 commit 提交不上是因为要加事务( JCoContext 的 begin 和 end )。调用完 BAPI 要确保此次连接不能断掉,commit 完再断掉。
tankren
203 天前
@VersionGod1 #4 Cloud 版本吗?
VersionGod1
202 天前
@tankren 你说的是 SpringCloud 版本吗,好像和版本没关系。这个好像和 Java 的调用 SAP 机制有关,正常应该是调用一个 SAP 函数后自动释放连接,但是 commit 函数要求 sap 连接需要连续,因此要加 JCoContext 的 begin 和 end 确保连接一直保持。
tankren
202 天前
@VersionGod1 #6 搜索并了解了一下,你这个是外部 JAVA 调用 SAP BAPI 吧,属于我的知识盲区了。
我看的这一篇 https://www.cnblogs.com/jiangzhengjun/p/4291479.html
VersionGod1
201 天前
@tankren 嗯嗯,是的,我是用外部 Java 调用的 SAP BAPI

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1034731

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX