Eine Endlosschleife nutzen zum Sprung in den Debugger

Aus SAP-Wiki
Wechseln zu:Navigation, Suche

Siehe Transaktion SM50 (Workprozessübersicht).

Manchmal ist ein Programm im Hintergrundprozess ausgeführt und sehr schnell durchlaufen und man möchte es debuggen.

Hier kann man ins Programmcoding an der gewünschten Stelle eine Endlosschleife programmieren.

Absprung über Transaktion SM50 in den Hintergrundprozeß

Coding Endlosschleife

  • Hier wird eine lokale Variable definiert, die man im Debugger auf 'X' setzen kann, um die DO-ENDO-Schleife zu verlassen.
Data: lv_exit type xfeld.

if sy-uname = ...
  do.
    if lv_exit = abap_true.
      exit.
    endif.
  enddo.
endif.

Schleife in Abhängigkeit von einem Benutzerparameter

  • Elegant ist es, wenn man die Endlosschleife in Abhängigkeit von einem Benutzerparameter macht, den man unter "Eigene Daten" pflegt, z. B. mit dem Namen "DEBUG" und dann einen Wert "X".
  • Die Schleife kann verlassen werden, in dem man im Debugger
    • die Variable LV_DEBUG, die beim Sprung in den Debugger den Wert "X" hat, im Debugger auf SPACE ändert oder
    • den Cursor hinter die Endlosschleife setzt und Menü "Debugger - Zur Anweisung springen".
  • Wenn man dann die Analyse beendet hat, löscht man den Wert 'X' wieder in den Parameterdaten.

Debug1.JPG

Data: lv_debug type xfeld.

GET PARAMETER ID 'DEBUG' FIELD lv_debug.
while lv_debug = 'X'.
endwhile.

Web-Links