4

我的程序可以通过两种方式启动:

从我的本地类之一START OF SELECTION调用函数的事件。调用相同方法MAIN的事务。ZAVGTTA4

PAI,对于 BACK 事件,当调用 时LEAVE TO SCREEN '0'.,我的程序根据它的启动方式以两种方式运行。我想回到选择屏幕(1000)。

我考虑过查询堆栈,我肯定会在其中找到我的程序是如何被调用的。我可以看到堆栈跟踪不同,但我不知道如何从程序中访问我的堆栈。我听说过我认为可能对我有帮助的 RTTI。

4

1 回答 1

6

你可以试试SYSTEM_CALLSTACK

DATA:
   abap_callstack_line TYPE abap_callstack_line,
   callstack TYPE  abap_callstack.


  CALL FUNCTION 'SYSTEM_CALLSTACK'
    EXPORTING
      max_level          = 4
    IMPORTING
      callstack          = callstack.

但在你的情况下,我更喜欢一个额外的参数,调用地点可以填写这个条目。我不会调用参数called_by,而是类似behaviouror mode

于 2012-07-16T09:07:52.740 回答