您的位置:首页 > 财经 > 产业 > ABAP 在增强中COMMIT

ABAP 在增强中COMMIT

2024/12/23 11:38:09 来源:https://blog.csdn.net/qq_44826887/article/details/139306577  浏览:    关键词:ABAP 在增强中COMMIT

前言

呃,又是很磨人的需求,正常情况下是不允许在增强中COMMIT的,会影响源程序本身的逻辑,但是这个需求就得这么干…
就是在交货单增强里面要再调用一次交货单BAPI,通过SO的交货单自动创建STO的交货单,如果无法成功创建STO交货单那么原SO交货单也不允许新建
STO交货单失败的情况很好做,反正都不建报个E类型错就行;但是STO交货单要是创建成功那就要COMMIT了,而且还要写到自建表里面,最后用下面的方法实现了

解决方案

看了别的大佬的博客,用远程RFC可以另起一个会话,在另外的会话中做commit就不会影响原来的bapi,我再wait个半秒钟从自建表里面捞commit的结果就能知道BAPI有没有成功
抄了个大概,要建两个RFC,一个正常的RFC给BAPI调用,一个远程的RFC给正常的RFC调用
增强里面调用正常RFC
在这里插入图片描述
正常RFC调用远程RFC,返回uuid给增强程序,后续增强程序根据uuid查询日志自建表判断此次远程调用是否成功并获取消息
在这里插入图片描述
远程RFC调用BAPI并COMMIT
在这里插入图片描述
在这里插入图片描述
重点没什么,其实主要就是STARTING NEW TASK让SAP另起一个异步会话去处理,增强里面直接调远程RFC会报错,所以就用这种间接的方式了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com