ABAP Test & Troubleshooting @SITMuc 2013

1,858 views
1,616 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,858
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
32
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ABAP Test & Troubleshooting @SITMuc 2013

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×