更新程序同步问题
SAP R / 3系统使用更新模块以事务方式存储与主数据相关的其他数据。您可以在此处阅读有关此内容的更多信息。
为了保证数据的一致性,保存后必须等待V1类型模块的执行。通常,这是通过执行COMMIT WORK AND WAIT命令来实现的。
一些标准的BAPI功能模块在文本中调用COMMIT WORK。执行此类FM之后,您将无法使用任何简单命令来验证保存过程是否已完成。为了解决此问题,一些程序员将一些复杂的查询写入VB表或等待不合理的n秒。一切都更加简单。
SET UPDATE TASK LOCAL可以解救
简而言之,它将为V1更新模块启动本地执行模式。从调用操作员到LUW当前DB结束之间注册的V1更新模块,将激活该模式。此外,V1模块:
- 保存在ABAP内存中,而不保存在VB更新表中;
- 在当前进程中执行,而不是并行执行;
- 通过COMMIT WORK语句同步。
也就是说,当调用COMMIT WORK时,程序将等待直到执行本地注册的V1更新模块。差异显示在图中:
如果无法控制COMMIT WORK语句并且想要等待所有V1模块等待某个过程完成,则SET SET UPDATE TASK LOCAL总计很有用。