ABAP在程序退出时执行某些操作

use*_*645 2 sql sap events abap

在我的ABAP程序中,如果一切正常,我正在更新表格tab1中的字段X,如果一切正常,我正在撤消此更新.在程序执行期间,字段X具有正确的值非常重要.

但是,当我使用关闭按钮而不是SAP取消按钮(F12)退出事务时,程序终止并且它不会转到程序结束,因此不会反转在开始时进行的更新.

在此输入图像描述

关闭报告后,我有办法执行一些代码吗?

San*_*ssi 5

"关闭窗口"按钮不能由程序控制(对于"外部模式"也是如此,即全屏窗口,这似乎是您的问题,但不适用于弹出窗口,其关闭按钮可以控制).

因此,SAP以这种方式编程其Dynpro应用程序:

  • 保存时,SAP会在整个应用程序结束时更新数据库
  • 最终,如果屏幕的某些部分由"外部"应用程序处理,则SAP通过"更新任务"记录中间更新(即它们被延迟,直到在应用程序结束时完成COMMIT WORK).请注意,SAP也经常仅在最后使用更新任务,但它仅用于获得更好的对话响应时间.

自定义应用程序应遵循相同的原则.