RFC and session issue - why we should use DESTINATION NONE?

181 阅读1分钟

Created by Jerry Wang on Oct 11, 2014

创建一个最简单的remote function module:
clipboard1

在function module source code里有一个COMMIT WORK。

clipboard2

在主程序里,直接call 该function module,其source code里line 8的COMMIT WORK AND WAIT会trigger主程序里注册在COMMIT上的form logic_main:

REPORT ZRFC.
form logic_main.
   WRITE: / 'I am in main session and triggered by COMMIT WORK.'.
endform.
START-OF-SELECTION.
   PERFORM logic_main ON COMMIT.
   call function 'ZRFC'.

输入:
clipboard3

如果要避免这种问题,使用DESTINATION ‘NONE’. 在这种情况下,该function module在一个新的external session下执行,其COMMIT WORK不会触发原report注册在COMMIT上的subroutine。
clipboard4