SAP LUW下的回滚

2020-09-06 00:19发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家们,我对SAP LUW...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家们,我对SAP LUW有疑问,我一直对SAP LUW回滚机制感到困惑。

如ABAP文档所述,SAP LUW下不允许使用ROLLBACK WORK和COMMIT WORK语句,只有类型A的消息可以隐式回滚SAP LUW,我在下面进行了测试:

我的系统组件版本为:

我如下创建两个表YLUW1和YLUW2,并初始化值:

我写了一份报告来执行PERFORM ... ON COMMIT语句,这是SAP LUW的解决方案之一:

第一种情况,我使用类型为A的消息触发隐式回滚,并且可以正常工作,但是程序因错误而终止。

结果:

第二种情况,在sy-subrc检查下我什么都没写,表YLUW1成功插入,YLUW2插入失败。

结果:

最后一种情况,我引发了一个异常以触发隐式回滚,并且它可以正常工作,但是程序因错误而终止。

结果:

所有这些之后,我的问题是:当任何表插入/更新/删除错误时如何回退SAP LUW,并且我可以捕获SAP LUW错误然后进行处理。 > 1.jpg (47.0 kB)

7条回答
Doze时光
2020-09-06 00:23

当您仅使用OPEN-SQL语句时,实际上并不需要整个LUW COMMIT/ROLLBACK,而只需要一些数据库 提交/回滚,因此请执行OPEN-SQL语句,当每条语句都正确时,请致电FM DB_COMMIT,以防出现任何错误,请致电DB_ROLLBACK。 ,请勿以交易程序的形式/方法进行更新,而是在"更新任务"中调用FM,然后执行"提交工作"。 在那些updayt中,FM会在出现SQL错误的情况下发出Abort'A'消息。

一周热门 更多>