ABAP Tipp - Callstack
Mal wissen wo du stehst oder einfach nur um sicher zu gehen, ob das Programm oder die Methode zur richtigen Zeit aufgerufen wurde? Wir helfen dir dabei diese simple Umsetzung durchzuführen.
Inhaltsverzeichnis
Für das Einlesen des aktuellen Callstack gibt es einen einfachen Funktionsbaustein im System. Mit SYSTEM_CALLSTACK bekommst du zum aktuellen Aufruf das bisher durchlaufende Coding.
Beispiel
Die Implementierung als folgendes Beispiel:
DATA lt_stack TYPE abap_callstack.
" Aktuellen Callstack einlesen
CALL FUNCTION 'SYSTEM_CALLSTACK'
EXPORTING
max_level = 0
IMPORTING
callstack = lt_stack.
Als Ergebnis bekommt ihr eine Tabelle mit den wichtigsten Informationen, wie:
- Porgramm/Include
- Zeile
- Blocktyp/-name
Parameter
Wie die Dokumentation des Bausteins beschreibt, sollte nur der Exporting Parameter callstack verwendet werden, da dieser auch alle Informationen enthält und der Parameter et_callstack veraltet ist.
Sollten alle Informationen benötigt werden, bleibt das Level auf 0. Wenn nur die letzten x Level benötigt werden, weil zum Beispiel die Stelle in einem Standardprogramm aufgerufen wird oder einem User-Exit, dann reicht eine kleine Anzahl der letzten Aufrufe.
Fazit
Mit dem einfachen Baustein kannst du viele Prüfungen und Features in einer großen Anwendung implementieren oder Sicherheitsfeatures umsetzen. Deiner Fantasie sind damit keine Grenzen gesetzt.