Debugger
Siehe Fehlerbehandlung.
Siehe Kategorie:Fehlerverarbeitung.
Siehe Kategorie:Debugging.
Siehe Basis.
Siehe SAP-Codingvorlagen im Editor.
Der Debugger ermöglicht zur Laufzeit eine Codeanalyse von ABAP Programmen, Funktionsbausteinen und Web Dynpros u. a. Das Coding kann hier zeilen- und modulabschnittsweise durchlaufen werden. Der Codingablauf kann während der Laufzeit inklusive der Variablenwerte analysiert werden.
Ab Release 6.40 steht ein Neuer Debugger zur Verfügung. Es kann zwischen dem Neuer Debugger und dem alten Debugger gewählt werden. Der Debugger kann auch während des Debuggens gewechselt werden. Der neue Debugger ist wesentlich mächtiger und flexibler als der alte Debugger und daher sollte immer der neue Debugger gewählt werden als Debuggingwerkzeug.
Ab Release 7.00 ist der neue ABAP Debugger der Standarddebugger. Hier wird der neue Debugger mit seinen wichtigsten Funktionen vorgestellt.
Neuer Debugger und alter Debugger
Break-Points
Transaktion SAAB
In der Transaktion SAAB kann man Checkpoint-Gruppen definieren. Im Coding kann man auf diese Checkpoint-Gruppe verweisen
break-point id ZTEST.
In der Transaktion SAAB kann man dann für diese Checkpoint-Gruppe einstellen, ob dieser dynamische Break-Point an dem Tag aktiv sein soll. Das Programm spring dann für den eigenen User an dem heutigen Datum in dem aktuellen System in den Debugger, sofern die Debugging-Berechtigung vorhanden ist.
Ganz praktisch ist es auch, dass SAP viele Checkpoint-Gruppen angelegt hat, die man selber auch im Qualitäts- oder Produktiv-System aktivieren kann.
Modularisierungseinheiten
Ein Programm kann aus lediglichen einem Hauptprogramm bestehen, aber meist wird man ein Programm kapseln in Modularisierungseinheiten, was der Übersicht sehr zugute kommt und ein Programm wesentlich einfacher pflegbar macht. Je nach Anforderung und Detaillierungsgrad in
- Methode einer globalen Klasse
- Methode einer lokalen Klasse
- Funktionsbaustein
- Form-Routine
- Module (im PBO/PAI)
Ein Include ist hier ein Spezialfall einer Modularisierung, weil ein Include ein eigenständiges Entwicklungsobjekt ist, aber das Coding sich im Programm zur Laufzeit genauso verhält als wenn das Coding im Hauptprogramm stehen würde.
Tastenkürzel/Shortcuts (F5, F6, F7, F8, strg+f)
Reiter "Standard"
Aufrufhistorie "ABAP und Dynpro-Stack"
Lokale und globale Variablen
Ist der obere Reiter "Standard" aktiv, dann kann man unten rechts mit dem Reiter "Locals" sich die lokalen Variablen der Modularisierungseinheit (hier Methode) anschauen und mit dem Reiter "Globals" die globalen Variablen.
An diesem Symbol sieht man, dass hier CV_ERROR ein Changing-Parameter der Methode ist.
ME ist die Selbstreferenz auf das Objekt, in dem das Coding ausgeführt wird.
Unter "Globals" sieht man die globalen Variablen des Programms. In diesem Fall eine Reihe von internen Tabellen.
Unter dem Reiter „Locals“ sieht man einige Variablen, die innerhalb der Methode lokal definiert sind, z. B. LT_FCAT und LT_SORT. Bei Methoden ist der Reiter „Lokals“ noch nützlicher, da die Übergabeparameter der Methode nicht direkt im Coding zu sehen sind im Gegensatz z. B. zu den Parametern von Funktionsbausteinen.
In der Methode ALV_FCAT ist ein Returningparameter FT_FCAT zu sehen.
Variablenwerte im Debugger ändern
Häufig möchte man im Debugger zu Testzwecken Variablen ändern. Dies ist standardmäßig erlaubt im Debugger, sofern es nicht explizit durch die Berechtigungsvergabe ausgeschlossen wird, was bei manchen Kundensystemen (v. a. im Produktivsystem) aus Sicherheitsgründen gemacht wird.
Hier ist in der Variablen LV_SEE_LUFTFRACHT kein Wert. Durch den Check würde die Routine verlassen. Das möchte man nun nicht.
Man holt sich die Variable in die Anzeige durch Doppelklick auf die Variable. Nun kann man den Variablenwert ändern durch Klick auf den Bleistift . Im Feld "Wert" wird nun ein "S" eingetragen und mit ENTER bestätigt.
Der Debugger prüft nun erfolgreich CHECK und der weitere Programmablauf kann ohne Probleme debuggt werden.
Debuggerdesktop sichern
Anmerkung: Pro Desktop sind maximal vier Desktopsichten möglich.
Desktop mit arrangierten Sichten sichern/laden
Bereits gesicherte Sitzungen, können hier durch den Menüpunkt 'Laden' wieder hergestellt werden.
Der Sitzungsname START_UP ist ein vordefinierter Sitzungsname, der beim Debuggerstart verwendet wird.
Reiter Diff
Debugging Laufzeitfehler/Shortdump (Transaktion ST22)
Debugger Bugs
Hintergrundjob debuggen
SAP-Popupbildschirm debuggen
Tabelleninhalte ändern in SE16/SE16N über Debugger
Werte ändern in SE16N
Werte ändern in SE16
Watchpoint
Web-Links
- Breakpoints und Breakpoint-Anweisungen
- www.schwaninger.info: Workshop zum Debugging
- SCN-Tipps zum Debuggen, von Jerry Wang (en)
- SAP NetWeaver® Process Integration 7.1 einschließlich Enhancement Package 1, Support Package Stack 6, November 2010
- SAP NetWeaver® Process Integration 7.1 SPS 11, November 2010
- SAP NetWeaver® 7.0 einschließlich Enhancement Package 1 Support Package Stack 07 und BI Content Add-On 4 SP 03, Juli 2010
Literatur
- ABAP Objects: Das neue umfassende Handbuch zu Konzepten, Sprachelementen und Werkzeugen in ABAP OO, 2016, von Felix Roth (Amazon) oder Rheinwerk, Kap. 15.1
- ABAP - Fortgeschrittene Techniken und Tools, Band 2, von Andreas Blumenthal, Horst Keller, S. 373 ff
- ABAP Workbench - 100 Tipps & Tricks, von Christian Assig, S. 239 ff
- ABAP Objects: ABAP-Programmierung mit SAP NetWeaver, von Horst Keller und Sascha Krüger, S. 1036 ff