Aufrufhistorie / Aufrufstack

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Debugger.

Extrem nützlich ist es, dass man an der Stelle, wo der Debugger sich gerade befindet, die Aufrufhistorie des Programmeinheiten sichtbar ist (Perform, Methode, Funktionsbaustein, PAI, etc.) unter "ABAP und Dynpro Stack".

DebuggerAufrufh1.jpg

Navigation in der Aufrufhistorie

  • Es ist auch möglich in der Aufrufhistorie (Stack) rückwärts zu springen, wie hier z. B. zum Programmereignis "Start-of-Selection". Dann kann man sich dort auch direkt die gültigen Variablen anzeigen lassen. Wenn man z. B. den Variableninhalt über den Programmablauf analysieren möchte, kann diese Navigation im Programmablauf einem viel Zeit sparen.

Aufrufhistorie lesen

  • Enno zeigt im Tricktresor https://tricktresor.de/blog/aktuelle-form-routine-ermitteln/ wie man mit einem Funktionsbaustein SYSTEM_CALLSTACK, bzw. der Klasse CL_ABAP_GET_CALL_STACK die Aufrufhierarchie ermittelt. Das wird man selten benötigen. Aber in der Projektpraxis hatte ich einen Fall, wo zu den SAPscript-Formularen das Druckprogramm ermittelt werden sollte. Der Weg über das Systemfeld SY-CPROG hat nicht funktioniert. Aber über die Aufrufhistorie konnte man in meinem Fall ausgehend vom Funktionsbaustein LOAD_FORM das Druckprogramm ermitteln.
DATA(lt_stack) = cl_abap_get_call_stack=>format_call_stack_with_struct( cl_abap_get_call_stack=>get_call_stack( ) ).

Stackb1.JPG


Hier steht an 3. Stelle im Feld PROGNAME das Druckprogramm. Entsprechend wird die interne Tabelle LT_STACK ausgelesen.

lf_programm = lt_stack[ 3 ]-progname.

Stackb2.JPG

Web-Links