Hierbei handelt es sich um das Handout des Vortrags zum Thema "ABAP Test & Troubleshooting" während des SAP Inside Track Munich 2013 von Martin Steinberg.
Das Handout beinhaltet alle besprochenen Themen und einiges darüber hinaus.
1. ABAP Test & Troubleshooting @sitMUC
Dies ist das Handout zum Vortrag zum Thema “ABAP Test & Troubleshooting” zum SAP Inside Track München 2013.
Es beinhaltet alle besprochenen Themen und gezeigten Features. Alle gezeigten Screenshots stammen aus einem
Trialsystem des AS ABAP 7.40 der SAP AG (Copyright).
Vielen Dank an dieser Stelle auch an Carlos Aceves für die Unterstützung.
Inhaltsverzeichnis
ABAP Debugger (ab 7.02) .................................................................................................................................................. 3
Layout sichern ............................................................................................................................................................... 3
Debugger Session sichern ............................................................................................................................................. 3
Werkzeuge .................................................................................................................................................................... 4
Einstellungen des Debuggers ........................................................................................................................................ 4
System Debugging ..................................................................................................................................................... 4
Verbuchungsdebugging ............................................................................................................................................ 4
tRFC Debugging ......................................................................................................................................................... 4
Schließe Debugger nach F8 und Rollbereich Ende.................................................................................................... 4
Break- und Watch-Points .............................................................................................................................................. 5
Session Breakpoints .................................................................................................................................................. 5
External Breakpoint................................................................................................................................................... 5
Verfügbare Breakpoint-Typen während des Debuggings ......................................................................................... 6
Watchpoint-Typen .................................................................................................................................................... 6
Bedingungsgesteuerte Break- & Watchpoints .......................................................................................................... 6
Statement Debugging ............................................................................................................................................... 7
Variablen im Debugger ändern löst einen Eintrag in SM21 aus ................................................................................... 7
Alle geladene Programme anzeigen ............................................................................................................................. 8
Testdaten für SE37 speichern ....................................................................................................................................... 8
Debugging von Batch-Jobs ............................................................................................................................................ 8
Diff-Tool ........................................................................................................................................................................ 8
Debugging von http-requests ....................................................................................................................................... 8
Hilfreiche Debugger OK-CODES .................................................................................................................................... 8
Debugging aus Shortdump starten (ST22) .................................................................................................................... 9
Debugging in SM50 und SM66 ...................................................................................................................................... 9
Table Tool .................................................................................................................................................................... 10
Objektreferenzen .................................................................................................................................................... 10
Ändern von Tabelleninhalten.................................................................................................................................. 11
Debugging von Popups ............................................................................................................................................... 11
Remote Debugging (RFC und http) ............................................................................................................................. 12
Debugging synchroner RFC-Aufrufe mit Kommunikationsuser .............................................................................. 12
Debugging synchroner RFC-Aufrufe mit „trusted connection“ .............................................................................. 12
1
Martin Steinberg #sitMUC 2013
2. Debugging synchroner Aufruf mittels externem Break-Point ................................................................................ 13
Request Based Debugging (RFC und http) .................................................................................................................. 14
Software Layer Aware Debugging ............................................................................................................................... 14
Ausgangssituation ................................................................................................................................................... 14
Verwendung ............................................................................................................................................................ 14
Verwendungsvariante 1: adhoc definierte Objektmengen .................................................................................... 14
Verwendungsvariante 2: Nutzung vordefinierter Objektmengen .......................................................................... 16
Weitere Informationen zu diesem Thema .............................................................................................................. 16
ABAP Laufzeitanalyse mit SAT......................................................................................................................................... 17
Einstiegsbildschirm (Reiter Messen) wie in SE30........................................................................................................ 17
Neuer Reiter „Auswerten“ .............................................................................................................................................. 17
Varianten..................................................................................................................................................................... 18
Trace starten ............................................................................................................................................................... 19
Trace auswerten ......................................................................................................................................................... 19
Programmflussanalyse ............................................................................................................................................ 19
Debugging mit ABAP Development Tools - Übersicht .................................................................................................... 21
Übersicht Debugger .................................................................................................................................................... 21
Break-Point-Arten ................................................................................................................................................... 22
Übersicht Profiler ........................................................................................................................................................ 23
Empfehlungen ................................................................................................................................................................. 25
Weiterführende Informationen ...................................................................................................................................... 25
2
Martin Steinberg #sitMUC 2013
3. ABAP Debugger (ab 7.02)
Layout sichern
Die Arbeitsfläche des ABAP Debugger lässt sich individuell anpassen. Beispielsweise können die Namen der Reiter
der ersten drei Desktops umbenannt werden (siehe gelbe Markierung im Screenshot, Menüpunkt „Benamung des
Benutzer-Desktops“ im zweiten Bild). Um das Layout nicht bei jedem Start des ABAP Debugger von neuem
konfigurieren zu müssen, lässt sich das Layout sichern.
Somit sind die Einstellungen (benutzerspezifisch) beim nächsten Start des Debuggers automatisch verfügbar. Ebenso
kann man das Layout über Debugger Debugger Sitzung Layout sichern speichern.
Debugger Session sichern
Hier findet man auch die Möglichkeiten zur Sicherung einer komplexen Debugger Session (viele Break-/Watchpoints,
evtl. sogar mit Bedingungen verknüpft) sowie diese zu laden, um diese bspw. für den nächsten Tag zu sichern oder
einem Kollegen zu übergeben
3
Martin Steinberg #sitMUC 2013
4. Werkzeuge
Jedes Werkzeug lässt sich austauschen, also gegen ein anderes auswechseln. Will man beispielsweise das Werkzeug
zur Anzeige des ABAP & Dynpro Stacks gegen die Anzeige der Report-Listen-Vorschau tauschen, geht man während
des Debugging-Vorgangs wie folgt vor:
Icon „Werkzeug tauschen“ betätigen
Im darauf folgenden Popup das Werkzeug „Konsole: XML- und Listenvorschau“
auswählen.
Während der Ausführung des Reports mit Listenausgabe
kann das Ergebnis während des Debuggings in diesem Werkzeug
Geprüft werden:
Einstellungen des Debuggers
Bei aktivem Debugger Einstellungen Debugger Profil/Einstellungen ändern
System Debugging
Debuggen von Objekten, welche als Systemprogramme gekennzeichnet sind.
Verbuchungsdebugging
Registriert den Debugger für das Erreichen von IN UPDATE TASK gerufenen Bausteinen.
tRFC Debugging
Verhindert das Senden des tRFC und „hält den request“ im Zugriff für den Debugger fest. Ebenso in Transaktion
SM58 möglich: LUW auswählen und über Bearbeiten LUW debuggen den Debugger starten
Schließe Debugger nach F8 und Rollbereich Ende
Schließt den Modus in dem der Debugger läuft, der ansonsten im Hintergrund noch inaktiv vorhanden ist.
4
Martin Steinberg #sitMUC 2013
5. Break- und Watch-Points
Session Breakpoints
Geltungsbereich für eine Anmeldung an einem System.
Beispiel: „Endlosschleife“ (Report: ZSITMUC_REPORT_1)
Hat man im Dialog eine Anwendung gestartet, die in einer Endlosschleife gemündet ist, dann hilft es in einem
zweiten Modus (vorher öffnen ) in die Source einen Session-Breakpoint einzufügen.
Wichtig ist, dass unter Hilfsmittel Einstellungen
External Breakpoint
Geltungsbereich für den gesamten AS ABAP, außer es wurde in den Einstellungen auf den aktuellen
Applikationsserver der Anmeldung eingeschränkt.
5
Martin Steinberg #sitMUC 2013
6. Verfügbare Breakpoint-Typen während des Debuggings
Die einzelnen Typen werden über den Button Create Breakpoint bei aktivem Debugger angelegt. Die einzelnen
Reiter repräsentieren dabei einen Breakpoint-Typ.
ABAP-Anweisung
o F4-Hilfe für Auswahl des Kommandos nutzen
o Z. B. Befehl „GET BADI“ in einer SAP Standard-Transaktion (bspw. BP) suchen
Methoden-spezifisch
o Breakpoint wird bei Aufruf der genannten Methode ausgelöst
Web Dynpro Entitäten
o Bei Eintritt in Components, Controllers und Methods wird der Name zur Laufzeit aufgelöst und ein
Breakpoint gesetzt
Simple Transformations (ST)
o Setzen eines Breakpoints in einer Zeile einer SimpleTransformation
o Hinweis: es gibt auch einen eigenen XSLT-Debugger in der SE80 speziell für die isolierte Betrachtung
von ST
ABAP stack
Screen Change
MESSAGE
o Generell bei MESSAGE-Anweisung
o Auch bei speziellen Nachrichten
Watchpoint-Typen
Für interne Tabelle
Klassen und deren Attribute
o Monitoring von Objekten und deren Attribute zur Laufzeit
Anwendung wird angehalten, sobald einer der Werte verändert wird oder die angegebene Bedingung erfüllt ist. Z. B.
Bedingung: LINES(lt_customers) > 200
Bedingungsgesteuerte Break- & Watchpoints
Szenario: Eine interne Tabelle wird mit massenhaften Daten befüllt. Ein einzelner Datensatz wird aus ungeklärter
Ursache nicht korrekt in die Tabelle eingefügt.
Zur Laufzeit des Debuggers mit der rechten Maustaste auf den Breakpoint klicken und eine Bedingung hinzufügen.
1. Break-Point anlegen (im Debugger über
)
2. Rechtsklick auf den neu angelegten BreakPoint und „Bedingung hinzufügen“
6
Martin Steinberg #sitMUC 2013
7. Statement Debugging
Stehen mehrere Anweisungen in einer Quelltextzeile, hält der ABAP Debugger bis einschließlich Release 7.0 EhP2
auch bei Verwendung des Einzelschritts nur einmal pro Zeile. Ab 7.02 (bzw. 7.20) kann die Schrittweite verändert
werden. Dies ermöglicht das Debuggen von Teilausdrücken, wie die nachfolgende Grafik veranschaulichen soll:
Quelle: scn
Besonders gut veranschaulichen lässt sich der Zustand mit dem Report ZSITMUC_REPORT_2. Dieser enthält alle
Anweisungen in einer Zeile, folglich wird während des Debuggings auch nur ein Schritt ausgeführt (bei Schrittweite
„Zeile/Anweisungen“).
Nach Umstellung auf Teilbedingung/Anweisung über den Button „Schrittweite“ lassen sich die einzelnen
Anweisungen debuggen.
Variablen im Debugger ändern löst einen Eintrag in SM21 aus
Sobald eine Variable im Debugger verändert wird schreibt das System automatisch einen Eintrag in SM21.
(Abbildungen zeigen neue SM21, welche mit AS ABAP 7.40 ausgeliefert wird)
7
Martin Steinberg #sitMUC 2013
8. Alle geladene Programme anzeigen
Spezialprogramm „Geladene Programme“ hinzufügen (über Menüpunkt zum jeweilig auszutauschenden Werkzeug:
Werkzeug tauschen).
Testdaten für SE37 speichern
Aus dem Debugger können Testwerte für SE37 zu Funktionsbausteinen gesichert werden.
Debugging von Batch-Jobs
In Transaktion SM37 den entsprechenden Job markieren (erstes Kästchen) und im Feld OK-CODE den Wert „jdbg“
eingeben (ohne Anführungszeichen). SYST-BATCH = ‚X‘, auch bei Debugging im Dialog!
Diff-Tool
Vergleich von beliebigen Variablen, internen Tabellen, Objekten, etc.
Klasse: CL_TPDA_TOOL_DIFF
Debugging von http-requests
Für Web Dynpro ABAP, BSP, SAPUI5. Aktivierung in Transaktion SICF (Edit Debugging Activate Debugging).
Beachte Hinweis 668256
Hilfreiche Debugger OK-CODES
/h activate debugging
/hs activate system debugging
/ha skip dynpro (PAI, PBO) and directly debug ABAP code
/hx detach debugger
/hmusa create memory snapshot (can be used in the transaction S_MEMORY_INSPECTOR for memory consumption
analysis)
jdbg in SM37 restart of a finished or crashed background job for debugging
/ron start ABAP Runtime Analysis measurement (transaction SE30)
/roff stop ABAP Runtime Analysis measurement (transaction SE30)
8
Martin Steinberg #sitMUC 2013
9. Debugging aus Shortdump starten (ST22)
Auch aus der Transaktion ST22 lässt sich der Debugger starten um einen Kurzdump analysieren zu können.
Im Debugger hat man die Möglichkeit die Variablen/Objekte oder auch den Stack zu prüfen und abschließend den
Debugger zu beenden.
Nachdem der Debugger einmal gerufen wurde, kann man diesen nicht nochmal aus ST22 heraus für denselben
Shortdump starten.
Debugging in SM50 und SM66
Über den Button „Debugging“.
9
Martin Steinberg #sitMUC 2013
10. Table Tool
Objektreferenzen
Tabellen können als Inhalte Referenzen auf Objekte besitzen. Ist der Inhalt dieser Objekte interessant, ist das
manuelle Öffnen einer jeden Referenz nicht praktikabel.
Nutzen Sie daher die Möglichkeit, Unterkomponenten einzufügen durch linken Mausklick auf den Button „Spalten…“
und anschließender Verwendung des Strukturbuttons (siehe Zeile 7):
Am unteren Ende des Popups befindet sich ein Speichern-Button. Wenn Sie die Konfiguration nicht sichern ist diese
nach dem Ende des Debugging-Vorgangs nicht mehr vorhanden und muss wieder manuell angelegt werden. Können
aber exportiert werden um diese mit anderen Kollegen zu teilen (copy & paste in eine Mail).
Testprogramm: TPDA_TOOL_TEST_TABLEVIEWER
Interne Tabelle mit 1000 Einträgen und Objektreferenzen. Rechte Maustaste auf die Spalte mit Objektreferenzen
„Spalten Unterkomponenten einfügen“
10
Martin Steinberg #sitMUC 2013
11. Ändern von Tabelleninhalten
Insofern im System das Ändern von Variablen im Debugger erlaubt ist, kann der Tabelleninhalt über das ServiceMenü des Werkzeugs modifiziert werden (oder über rechte Maustaste):
Debugging von Popups
Auf dem Desktop wurde nun eine Verknüpfung abgelegt.
Starten Sie nun die Anwendung und öffnen Sie das Popup, z. B. eine Suchhilfe. Nehmen Sie nun die Verknüpfung
vom Desktop und ziehen Sie diese (drag & drop) auf die Titelleiste des Popups.
11
Martin Steinberg #sitMUC 2013
12. Remote Debugging (RFC und http)
Bei systemübergreifenden Anwendungen ist das Setzen eines Haltepunkts oftmals nicht möglich, da zum einen
andere Benutzer für die technische Kommunikation angewandt werden.
Debugging synchroner RFC-Aufrufe mit Kommunikationsuser
Kein Session Break-Point im Zielfunktionsbaustein gesetzt. Die Schrittweite des Debuggers muss zwingend auf
„Zeilen/Anweisung“ eingestellt sein!
Einfach mit F5 (Einzelschritt) dem Programmfluss folgen
Die Debugger-Session wird automatisch im Zielsystem fortgesetzt
Die Benutzersession ist die des technischen Kommunikationsusers
Mit F8 oder entsprechend vielen Einzelsteps gelangt man wieder in das Quellsystem, also den Client.
Diese Variante kann angewandt werden, wenn der Entwickler selbst die Anwendung starten und debuggen kann und
sRFC (CALL FUNCTION mit Zusatz „DESTINATION“ und Rückgabeparametern) angewandt wird. Gleiches gilt für die
nachfolgende Beschreibung zur „trusted connection“.
Debugging synchroner RFC-Aufrufe mit „trusted connection“
Hierbei handelt es sich um eine RFC-Verbindung (Transaktion SM59) welche die Anmeldedaten an den Zielserver
weiterreicht und somit zur Authentifizierung im Zielsystem verwendet.
Zum einen kann bei Start des Debuggings im Sendersystem auch mit F5 in die Funktion verzweigt werden. Ist die
Aufrufstelle nicht erreichbar, so reicht im Zielsystem das Setzen eines externen Break-Points (ohne zwingend den
Bezug zu einer Terminal-ID zu haben). Die Schrittweite des Debuggers muss zwingend auf „Zeilen/Anweisung“
eingestellt sein!
12
Martin Steinberg #sitMUC 2013
13. Debugging synchroner Aufruf mittels externem Break-Point
Falls Sie einen synchronen RFC-Request von System A nach System B in System B debuggen möchten, müssen Sie
zuerst den technischen Kommunikationsuser, über den die RFC-Verbindung aufgebaut wird, im Zielsystem auf
„Dialog“ umstellen. Dann haben Sie die Möglichkeit, einen externen Break-Point mit Bezug zu diesem User in einem
RFC-fähigen Funktionsbaustein (RFC-Service) anzulegen.
1. Anpassen der Einstellungen zu externen Break-Points (SE80 Hilfsmittel Einstellungen)
2. Setzen des Break-Points (hier: Benutzer DEVELOPER)
3. Aufruf der Anwendung, welche den RFC-Service konsumiert (hier: Benutzer DDIC)
4. Break-Point wird zur Laufzeit erkannt Debugger startet
13
Martin Steinberg #sitMUC 2013
14. Request Based Debugging (RFC und http)
Falls der zu debuggende Vorgang nicht von dem Benutzer gestartet werden kann, der letztlich das Debugging
ausführt kann das sog. “request based debugging” eingesetzt werden. Hierbei wird im linken Screen unter einem
anderen Usernamen/System der Report gestartet, während der externe Break-Point im rechten Screen auf eine TID
registriert und dort über die Zuordnung angesprochen wird (Benutzername ist unerheblich, es gilt die TID).
Software Layer Aware Debugging
Ausgangssituation
Ist die konkrete Platzierung des Break-Points nicht eindeutig kann man den Debugging-Vorgang durch Eingrenzen
von Objektmengen erheblich beschleunigen.
Verwendung
Transaktionscode für Konfiguration und Übersicht: SLAD
Verwendungsvariante 1: adhoc definierte Objektmengen
Um das SLAD nutzen zu können, müssen Sie zuerst in der Transaktion unmittelbar vor der Interaktion (z. B. Auslösen
einer Funktion wie „Sichern“) in den Debugging-Modus wechseln:
/h
Anschließend müssen Sie das SLAD aktivieren:
14
Martin Steinberg #sitMUC 2013
15. Tragen Sie hier die zu debuggende Objektmenge ein (hier bspw. die Einschränkung auf ein Paket).
Die direkte Definition der Objektmenge ist selbstsprechend. Der Debugger wird automatisch beim Ein- und/oder
Austritt in eine Verarbeitungsroutine (Methode, FuBa, o. ä.) eines Objekts des Pakets
„SABAP_DEMOS_CAR_RENTAL_PERSIST“ anhalten. Dieses Paket ist Bestandteil einer Demoanwendung, die mit
jedem AS ABAP ab 7.02 ausgeliefert wird.
Gleichzeitig ist die Anlage von Profilen zur dauerhaften Hinterlegung möglich, bspw. für wiederkehrende DebuggingGegenstände, welche sich für die Nutzung empfiehlt (Transaktion SLAD).
Nun muss über „Nächste Objektmenge“ im Debugger fortgefahren werden. Der nächste Halt wird ohne vorherige
Definition eines Haltepunkts der Objektmenge entsprechend stattfinden.
15
Martin Steinberg #sitMUC 2013
16. Verwendungsvariante 2: Nutzung vordefinierter Objektmengen
Einstiegspunkt für die Erstellung von Vordefinierten Objektmengen ist die Transaktion SLAD. Für die Organisation der
Objektmengen und Profilen wird die SAP Anwendungshierarchie angewandt. Für das Debugging relevant ist das
SLAD-Profil, welches Objektmengen (beliebig verknüpfbar) beinhaltet bzw. referenziert.
Beim Anlegen einer Objektmenge müssen Sie eine Beschreibung sowie eine ID im Z-Namensraum vergeben. Z. B.
ZSITMUC_OBJECT_SET.
Screenshot SLAD – Ansicht Objektmenge
Die Selektionskriterien können „Einzelpakete“, „Pakete mit Unterpaketen“ (hier erweist die sich die aktuell
durchgeführte Paketzuordnung als äußerst hilfreich, z. B. wenn zum Zeitpunkt des Einstiegs in die Analyse das exakte
Paket noch unbekannt ist), „Klassen“, „Funktionsbausteine“ sowie „implementierte Interfaces“.
Die Objektmenge muss noch mit dem SLAD-Profil verknüpft werden:
Screenshot SLAD – Ansicht SLAD-Profil
Hinterlegen Sie hier die Objektmenge und definieren Sie, wann der Debugger anhalten soll und ob die restlichen
Komponenten außerhalb der Objektmenge sichtbar sein sollen.
Weitere Informationen zu diesem Thema
http://scn.sap.com/people/stephen.pfeiffer/blog/2010/07/27/layer-aware-debugging-in-nw-70-ehp2
16
Martin Steinberg #sitMUC 2013
17. ABAP Laufzeitanalyse mit SAT
Einstiegsbildschirm (Reiter Messen) wie in SE30
Anzeige der Namen von internen Tabellen aus dem
ABAP Quelltext.
Neuer Reiter „Auswerten“
Die Traces werden in der Datenbank gespeichert und sind von allen Benutzern auf allen Application Servern
auswertbar.
Beim erstmaligen Anzeigen eines Traces wird dieser formatiert und in die Datenbank geschrieben (zuvor liegt er als
Datei auf dem Application Server). Dies gilt ebenso für die Option „sofort auswerten“.
17
Martin Steinberg #sitMUC 2013
18. Varianten
Diese sind die Basis aller Auswertungen in SAT.
Programmflussanalyse
n
Performanceanalyse
Je nach Problemzone unbedingt die Anzahl der Anweisungen einschränken. Meist reicht eine Analyse von
Verarbeitungsblöcken und Datenbankzugriffen.
Falls die einzelnen Objekte benannt werden können, für die ein Trace geschalten werden soll, dann können diese im
letzten Reiter „Programmteile“ angegeben werden.
18
Martin Steinberg #sitMUC 2013
19. Trace starten
Nachdem die Variante gepflegt wurde muss der Trace gestartet werden. Am einfachsten ist der Start direkt aus dem
Dialog „Sofort ausführen“.
Ferner kann auch explizit ein-/ausgeschaltet werden (System Hilfsmittel Laufzeitanalyse, oder über /ron /roff)
Trace auswerten
Der Arbeitsbereich ist stark an den ABAP Debugger angelehnt.
Programmflussanalyse
Wann notwendig?
1. Herausfinden, ob ein Objekt im Programmablauf involviert ist
2. Vergleich der Programmflüsse von verschiedenen Systemen (z. B. abweichendes Verhalten in
Produktivumgebung) in beiden Systemen tracen und dann vergleichen
In der Variante keine Aggregation verwenden, ansonsten wird die Aufrufhierarchie nicht erzeugt
In der Auswertung folgende Tools verwenden:
Aufrufhierarchie-Tool
Zeigt den Verlauf der Aufrufe der gemessenen/angezeigten Repository-Objekte.
Per Doppelklick in den Quelltext verzweigen
Rechte Maustaste auf die Anweisung Im Verarbeitungsblöcke-Werkzeug anzeigen
Aufrufstack über Button
anzeigbar (zuvor Zeile markieren)
Verarbeitungsblöcke-Tool
Erleichtert die Navigation in der Aufrufhierarchie durch die Baumstruktur
Es können die „kritischen Verarbeitungsblöcke“ über den Button
automatisch ermittelt werden
Für die Sequenzdiagrammgenerierung ist es notwendig, die Anzeigemenge der gesamten Auswertung zu
beschränken! Dies geschieht über den allgemeinen Filter
.
19
Martin Steinberg #sitMUC 2013
20. Einschränkung nach SLAD-Objektmenge
Danach über den Button
das Sequenzdiagramm generieren. Hierzu ist die JNet Gantt
Komponente der SAP Gui Installation notwendig. Diese ist ggf. mit Adminrechten zu installieren.
20
Martin Steinberg #sitMUC 2013
21. Debugging mit ABAP Development Tools - Übersicht
Übersicht Debugger
In Eclipse setzen Sie Break-Points ähnlich wie in der Workbench. In den linken Bereich neben den Zeilennummern:
Führen Sie den ABAP-Report aus:
Der Break-Point wird zur Laufzeit erkannt und die Eclipse-Perspektive für das Debuggen öffnet sich:
21
Martin Steinberg #sitMUC 2013
22. ABAP Stack Anzeige
Variablenanzeige
Quelltextbereich
Table Tool
Break-Point-Arten
In ABAP in Eclipse (ADT) stehen aktuell drei verschiedene Arten von Break-Points zur Verfügung:
Klassischer Break-Point
Exception-Break-Point (wird die genannte Ausnahme ausgelöst wird, hält der Break-Point die Verarbeitung an)
Statement-Break-Point (Anhalten bei einer bestimmten Anweisung)
22
Martin Steinberg #sitMUC 2013
23. Übersicht Profiler
Die Einstellungen die Sie in der Transaktion SAT im Einstiegsbildschirm bzw. den Varianten tätigen, stellen Sie in
Eclipse diese unter „Window Preferences“ ein:
Es gelten die gleichen Regeln wie für die Transaktion SAT.
Starten Sie die Vermessung der Anwendung über das Kontextmenü wie folgt:
Anschließend finden Sie einen neuen Eintrag im View „ABAP Traces“:
23
Martin Steinberg #sitMUC 2013
24. Per Doppelklick auf einen Eintrag gelangen Sie in die Detailanzeige:
Die einzelnen Reiter unterhalb der Grafik entsprechen weitgehend denen aus der Transaktion SAT.
Die Visualisierung der Aufrufhierarchie, welche in SAT auch über UML möglich ist (Sequenzdiagramm), ist mit
interaktions-sensitiven Grafiken ausgestattet. Sie können auf jeden Balken per Doppelklick an die entsprechende
Codingstelle navigieren:
Einen guten Blog zu diesem Thema finden Sie im SCN unter http://scn.sap.com/docs/DOC-41223
24
Martin Steinberg #sitMUC 2013
25. Empfehlungen
Nachdem die zum Debuggen und Analysieren verwendete Zeit als Entwicklungszeit gelten kann, muss diese so gering
wie möglich gehalten werden. Dies erreicht man u. a. mit
Einsatz von ABAP Unit
Einhalten der offiziellen „ABAP-Programmierrichtlinien“ der SAP (SAP Press, http://www.sappress.de/katalog/buecher/titel/gp/titelID-1922?GalileoSession=35309084A6-dpgFrrl0)
Clean Code erzeugen
Erweiterte Syntaxprüfung durchführen
Code Inspector einsetzen (z. B. Integration in Transportfreigabe)
ABAP Test Cockpit (ATC, http://scn.sap.com/docs/DOC-32172) einsetzen (Etablierung Rolle
„Qualitätsmanager“ in Organisation dann notwendig; leichtgewichtig in ADT möglich)
Weiterführende Informationen
Link zu SCN-Bereich zum Thema: http://scn.sap.com/community/abap/testing-and-troubleshooting
Guter Blog von Olga Dolinskaja (Product Owner des ABAP Debuggers und von SAT):
http://scn.sap.com/community/abap/testing-and-troubleshooting/blog/2010/11/10/new-abap-debugger-tips-andtricks
25
Martin Steinberg #sitMUC 2013