如何在ABAP中获取程序调用堆栈跟踪?

时间:2012-07-16 07:00:21

标签: events sap abap

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

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

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

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

1 个答案:

答案 0 :(得分:4)

您可以尝试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称为behaviourmode