在我的ABAP程序中,我从头开始更新表tab1中的字段X,在一切正常的最后一步中,我正在反向进行此更新。在程序执行期间,字段X具有正确的值很重要。
但是,当我使用关闭按钮而不是SAP取消按钮(F12)退出事务时,程序终止,并且不会转到程序结尾,因此不会撤消开始时所做的更新。
关闭报告后是否可以执行一些代码?
答案 0 :(得分:5)
“关闭窗口”按钮不能由程序控制(对于“外部模式”(即全屏窗口,这是正确的,这似乎是您的问题,但对于弹出窗口而言,是正确的) ,其关闭按钮可以控制)。
因此,SAP通过以下方式对其Dynpro应用程序进行了编程:
自定义应用程序应遵循相同的原则。
答案 1 :(得分:0)
我认为您正在尝试添加锁定机制。 ABAP具有自己的对象锁定机制。如果用户注销,关闭报告或会话终止,系统会自动将其解锁。我更喜欢使用锁定机制example。
如果您使用不同的方案;将用户和锁定时间的新列添加到同一表中,并检查用户是否在线,否则请删除锁定。
如果您不希望通过用户操作来删除锁定,则可以使用更新记录来启动新的后台作业5分钟。此作业可以检查用户并记录,如果用户从报告中注销(T代码SM04),则可以删除作业记录,否则可以自行重新计划。