点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家们,我对SAP LUW...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家们,我对SAP LUW...
加入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)
请记住" 创建子例程已过时" ,而是创建更新功能模块。 通过更新功能模块,任何RAISE或MESSAGE RAISING或MESSAGE E/A错误将显示为弹出窗口" Express Information 从作者"用户..."收到的快速文档"更新已终止" 确定-选择(详细信息)-收件箱",因此它比短转储或中止弹出式菜单更具攻击性,并且您可以通过SM13处理错误,并可能恢复错误。
更新任务的原理是使 所有可能的检查,以避免在COMMIT WORK之前发生数据库更新错误。如果更新任务内部发生错误,则为时已晚,并且只能中止(希望由于以前的所有检查,这种情况很少见)。
这是伪代码:
更新功能模块的伪代码(可能的消息类型为" E"或" A"):
一周热门 更多>