您的位置:首页 > 其它

ABAP--如何获取ABAP的程序事件顺序的调用堆栈 .

2013-04-07 23:03 375 查看
文章转自
http://blog.csdn.net/hackai886/article/details/7949750

report yhk.

data: num1 type i,
num2 type i,
sum type i.

num1 = 2.
num2 = 4.

perform addit.

*&---------------------------------------------------------------------*

*& Form addit
*&---------------------------------------------------------------------*

* text
*----------------------------------------------------------------------*

form addit.
sum = num1 + num2.

perform out.
endform. "addit

*&---------------------------------------------------------------------*

*& Form out
*&---------------------------------------------------------------------*

* text
*----------------------------------------------------------------------*

form out.
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. "out

report yhk.

data: num1 type i,
      num2 type i,
      sum  type i.

num1 = 2. num2 = 4.
perform addit.

*&---------------------------------------------------------------------*
*&      Form  addit
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
form addit.
  sum = num1 + num2.
  perform out.
endform.                    "addit

*&---------------------------------------------------------------------*
*&      Form  out
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
form out.
  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.                    "out


Result.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: