我的程序可以通过两种方式启动:
从我的本地类之一START OF SELECTION
调用函数的事件。调用相同方法MAIN
的事务。ZAVGTTA4
在PAI
,对于 BACK 事件,当调用 时LEAVE TO SCREEN '0'.
,我的程序根据它的启动方式以两种方式运行。我想回到选择屏幕(1000)。
我考虑过查询堆栈,我肯定会在其中找到我的程序是如何被调用的。我可以看到堆栈跟踪不同,但我不知道如何从程序中访问我的堆栈。我听说过我认为可能对我有帮助的 RTTI。
你可以试试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
,而是类似behaviour
or mode
。