• 如何获取ABAP程序执行的调用堆栈 [SYSTEM_CALLSTACK]


    介绍一个有趣的函数SYSTEM_CALLSTACK(),这个函数可以得到abap程序执行的堆栈,包括事件(event),form。。。

    例子代码如下:

    REPORT ztest_stack.
    DATA: num1 TYPE i,
          num2 TYPE i,
          sum  TYPE i.
    
    num1 = 2. num2 = 4.
    PERFORM frm_call.
    
    *&---------------------------------------------------------------------*
    *&      Form  frm_call
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    FORM frm_call.
      sum = num1 + num2.
      PERFORM frm_output.
    ENDFORM.                    "frm_call
    
    *&---------------------------------------------------------------------*
    *&      Form  frm_output
    *&---------------------------------------------------------------------*
    *       text
    *----------------------------------------------------------------------*
    FORM frm_output.
      FIELD-SYMBOLS: <fs> TYPE any.
      DATA: l_cstack_tab  TYPE sys_callst,
            ls_cstack_tab LIKE LINE OF l_cstack_tab.
    
      WRITE: / 'Sum of', num1, 'and', num2, 'is', sum.
      CALL FUNCTION 'SYSTEM_CALLSTACK'
        IMPORTING
          et_callstack = l_cstack_tab. " internal table
    * l_cstack_tab 里就是abap的调用堆栈
      WRITE: sy-uline.
      LOOP AT l_cstack_tab INTO ls_cstack_tab.
    
        WRITE: / sy-tabix, ls_cstack_tab-eventtype,  ls_cstack_tab-eventname.
    
        CLEAR: ls_cstack_tab.
      ENDLOOP.
    
    ENDFORM.                    "frm_output

    执行结果,先触发事件 start-of-selection,然后调用frm_call,最后是frm_output.

    2017-02-25_20-13-29

    以上

  • 相关阅读:
    Linq分组后,再对分组后的每组数据进行排序,获取每组的第一条记录
    C/C++ 常量存储: 总结
    张庆科(山师大硕导简介) [转载]
    composer [packagist]包制作(入门篇)
    MMGCN: Multi-modal Graph Convolution Network for Personalized Recommendation of Micro-video
    opencv.js编译
    推荐
    推荐
    推荐
    Azure Automation (10) 在Automation中动态修改Azure Analysis Firewall防火墙规则
  • 原文地址:https://www.cnblogs.com/datie/p/11435767.html
Copyright © 2020-2023  润新知