对于多个 BAPI一起commit!

前提是这几个BAPI产生的结果互不影响,可以同步提交,下面是理论,还需要实例测试!
由于对表直接MODIFY 、insert、update等都触发隐士提交,建议写在后面。
DO循环里面成功 则EXIT跳出DO循环。进入LOOP下一层。

LOOP
DO 5 TIMES.

CALL A
if sy-subrc eq 0

CALL B
IF SY-SUBRC EQ 0.

CALL C
IF SY-SUBRC EQ 0
modify db.
1.如 果 是 commit work还是BAPI 那个异步提交,异步提交,则按顺序 则有4个更新进程需要去提交,这时判断 commit work 返回sy-subrc 只是 modify db结果,前面成功与否需要查看实际数据情况。
2.如果是同步提交,则 判断 返回的 sy-subrc 如果成功 则整体提交成功 并EXIT当前DO循环,失败 则 ROLLBACK ,则全部失败。
ENDIF.
ENDIF.

endif.

ENDO.

ENDLOOP.

经过多年努力,终于找到失散多年的 多个Bapi提交思路, 首先这个思路是 每个BAPI OR ZBAPI用一个CLASS中的正向方法A中实现,它的逆向方法(即Reverse冲销方法)B中实现正向A的冲正。(不存在逆向不在此说了,比如起死回生),A执行成功后 commit work. 然后下一步BAPI OR ZBAPI,成功继续COMMIT WORK.如果 第N步正向骤失败,则去catch exception 然后Reverse N-1步骤的 B方法(冲销方法),Until N-1 = 1 步骤的B方法成功。基本保持事物一致性,写的好 ,一致性在98%以内控制,2%冲销失败,不能保证一致,需要人工介入。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值