Translate this blog

quarta-feira, 29 de maio de 2013

Pilha de Processos ABAP / ABAP Stack Process - LIFO


 Português  Quando debugamos um programa, podemos observar que existe uma tabela denominada Pilha ABAP na aba Standard. Nesta tabela contém as informações dos eventos, funções, métodos, etc. que o programa está realizando no momento. É a pilha de processos correntes no programa em execução, também conhecido como LIFO (Last In, First Out).

Existe a possibilidade de obter esta pilha por meio de código ABAP! Talvez seu uso não seja tão trivial, mas se algum dia precisarmos mapear os processos em execução, esta é a maneira!

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
  DATA: lt_stack TYPE abap_callstack,
       ls_stack TYPE abap_callstack_line.
 
  CALL FUNCTION 'SYSTEM_CALLSTACK'
    IMPORTING
     callstack = lt_stack.
 
*Lendo os registros retornados da pilha
  LOOP AT lt_stack INTO ls_stack.
    WRITE: ls_abap-mainprogram,"Programa principal
     ls_abap-include,
     ls_abap-line,"Linha da chamada
     ls_abap-blocktype,"Tipo da chamada
     ls_abap-blockname,"Nome do processo
     "Processamento de sistema ou programa de sistema
     ls_abap-flag_system, /.
  ENDLOOP.

Nenhum comentário:

Postar um comentário