首页 > 解决方案 > ABAP 在程序退出时做一些事情

问题描述

在我的 ABAP 程序中,我将在开始时更新表 tab1 中的字段 X,如果一切正常,则在最后一步中,我将撤消此更新。重要的是,在程序执行期间,字段 X 具有正确的值。

但是,当我使用关闭按钮而不是 SAP 取消按钮 (F12) 退出事务时,程序终止并且它不会进入程序末尾,因此不会撤消开始时所做的更新。

在此处输入图像描述

有没有办法在关闭报告后执行一些代码?

标签: sqleventsabapsap-gui

解决方案


“关闭窗口”按钮不能由程序控制(这适用于“外部模式”,即全屏窗口,这似乎是你的问题,但不适用于可以控制关​​闭按钮的弹出窗口)。

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

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

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


推荐阅读