ABAP SET UPDATE TASK LOCAL的测试

177 阅读1分钟

如果在ST12的trace文件里发现如下的entry, 说明update function module和调用该function module的代码是执行在同一work process里的,即同步执行:
clipboard1

可以写如下的report进行验证:

START-OF-SELECTION.

  SET UPDATE TASK LOCAL.
  CALL FUNCTION 'ZTIME_SPENT2' IN UPDATE TASK
    EXPORTING
       iv_time = 2.

  COMMIT WORK.
  PERFORM main.

WRITE: / 'finish'.

FORM main.
  WAIT UP TO 1 SECONDS.
ENDFORM.

打开system debugging:
callstack的入口SAPMSSY0即ST12 trace文件里的最后一列:
line 252 call system call去检查当前是否是local update mode:
clipboard2

state = N 说明是local update,执行系统程序SAPMSSY4中的逻辑:
clipboard3
clipboard4
clipboard5

这里会在当前的work process里执行update function module:
clipboard6
clipboard7