Hilfestellung zur ABAP-Dumpanalyse (ST22)

Getting started ... Alles für einen gelungenen Start.

Hilfestellung zur ABAP-Dumpanalyse (ST22)

Postby Jana2149 » Thu Jan 30, 2014 11:19 pm

Hallo zusammen!

Ich habe einen Report gebaut, der einige tausend Datensätze verarbeitet. Leider läuft er dabei im SAP-Standard bei mindestens einem Datensatz auf einen Fehler. Bislang konnte ich nicht herausfinden, bei welchem Datensatz dies der Fall ist. Anstatt zu loggen, um den entsprechenden Datensatz herauszufinden (was meine etwas aufwändigere Lösung wäre), würde ich gerne mit der ST22 arbeiten, mit der ich mich bislang nicht gut auskenne. Da man dort ja auch debuggen kann sollte es ja möglich sein herauszufinden in welchem Datensatz des auszurufenden (meines) Programms der Programmabbruch erfolgt. Leider hab ich es bislang aber nicht hinbekommen mich von dort aus wieder in mein Programm zu navigieren und dort den entsprechenden Datensatz herauszulesen.

Habt ihr mir daher einen Link, der mir die ST22 und das Debugging allgemein näher bringt und/oder könnt ihr mir speziell zu diesem Problem helfen?

Grüße
Jana2149
..
..
 
Posts: 44
Joined: Wed Jun 29, 2011 12:06 am

Re: Hilfestellung zur ABAP-Dumpanalyse (ST22)

Postby Angela1614 » Fri Jan 31, 2014 11:44 am

Wenn Du einen fehlerhaften Satz hat, erzeugt Deinen Programm einen Dump, richtig soweit?
Du kannst, wenn der Dump im Dialog hochkommt, direkt aus diesem in den Debugger gehen, allerdings nicht(!) das Programm weiter ausführen.
Was Du dann hingegen machen kannst, ist die Werte aller möglichen Variablen anzeigen zu lassen und somit den fehlerhaften Satz identifizieren.

Gehst Du über die ST22 in den Dump, kannst Du von dort nicht in den Debugger springen. Was Du machen kannst, ist:
- die Fehlerursache anzeigen (die lässt sich ja dann evtl. im Programm abfangen und das Abfangen mit einem BreakPoint versehen. Dann kannst Du auch im Debugger bis dahin navigieren)
- die Codingstelle, an der der Abbruch kam, anzeigen lassen
- an die entsprechende Stelle im Editor springen
- aus der ST22 links im Baum den Punkt "ausgewählte Variablen" wählen und anhand der Inhalte evtl. rausfinden, welcher Deiner Sätze den Fehler verursacht
Angela1614
...
...
 
Posts: 268
Joined: Fri Jul 23, 2004 2:19 pm

Re: Hilfestellung zur ABAP-Dumpanalyse (ST22)

Postby Bianka187 » Fri Jan 31, 2014 2:10 pm

hallo jabap,

als Ergänzung sei noch die Stelle "Aktive Aufrufe / Ereignisse" zu erwähnen. Hiel lässt sich schön nachvollziehen in welcher Reihenfolge Programmroutinen aufgerufen wurden eher es zum Fehler kam. Das Programm mit der kleinsten Nummer beginnt und ruft das mit der zweitkleinsten Nummer auf usw...

Falls du deine Datensätze mit LOOP-ENDLOOP oder SELECT-ENDSELECT abarbeitest, so könntest du in der Variablen SY-TABIX den Index der aktuellen Tabellenzeile finden. Ggf. hilft das auch schon weiter
Bianka187
....
....
 
Posts: 612
Joined: Thu Feb 23, 2006 5:34 pm

Re: Hilfestellung zur ABAP-Dumpanalyse (ST22)

Postby Jana2149 » Fri Jan 31, 2014 4:12 pm

Hallo und danke für eure Antwort!

Ein wenig hat mir das schon weitergeholfen. Eine Frage hätte ich noch zu dem was du, GastX gesagt hast, noch:

Was Du dann hingegen machen kannst, ist die Werte aller möglichen Variablen anzeigen zu lassen und somit den fehlerhaften Satz identifizieren.


Die Methode in der ich einen Dump bekomme sieht wie folgt aus:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. METHOD XYZ.
  2.   Message ID im_msgid TYPE 'X' NUMBER im_msgno.
  3.  
GeSHi ©


Ich sehe lediglich die Werte der Variablen im_msgid und im_msgno. Die Werte der Variablen, die zu Zeit des Abbruchs in meinem Programm vorlagen, kann ich aber nicht sehen, oder?


Durch die Stelle "Aktive Aufrufe / Ereignisse" habe ich nun aber immerhin herausfinden können, dass im folgenden Statement der Fehler erfolgt:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. lr_conditions = lr_entity->get_related_entities( iv_relation_name = 'BTCondICondLineAll' ).
  2.  
GeSHi ©


Könnt ihr hiermit evtl. etwas anfangen? Stimmt etwas mit dem ein oder anderen Vertrag nicht, da andere Verträge korrekt die Entitäten beziehen. (--> anderes Topic, sollte ich hierfür einen anderen Thread aufmachen?)

Dank & Gruß

Grüße
Jana2149
..
..
 
Posts: 44
Joined: Wed Jun 29, 2011 12:06 am

Re: Hilfestellung zur ABAP-Dumpanalyse (ST22)

Postby Angela1614 » Fri Jan 31, 2014 8:33 pm

Wenn Du in der ST22 einen Dump auswählst und anzeigst, hast Du doch rechts den eigentlichen Dump und links einen Navigationsbaum, oder? (Wenn nicht: was für ein Release habt Ihr?)
Und dann findest Du über den Baum links auch "ausgewählte Variablen", enthalten die in Deinem Fall nur msgid und msgno?

Selbst wenn: wenn Du weisst, dass die Methode XYZ die Message auswirft, die letztlich den Dump verursacht: Im Editor dort hin navigieren, Breakpoint auf die Message-Zeile setzen und dann Dein Programm laufen lassen. Dann landest Du im Debugger kurz bevor der Dump ausgelöst wird. Sofern Ihr den neuen Debugger habt (sollte eigentlich) kannst Du durch den Aufrufstack navigieren und Dir von der aktuellen Methode und auch den in der Aufrufkette vorhergehenden im Grunde alle Variablen anzeigen lassen. (Ist das Standard, dass im Reiter "Desktop 2" der Aufrufstack zu sehen ist? Bei uns ist es so.)
Und damit müsstest Du auch den fehlerhaften Satz identifizieren können.

Schau Dir auch mal die anderen Reiter im Debugger an: unter Break/Watchpoints kannst Du auch Watchpoints anlagen, die dann so etwas wie "stoppe sobald Variable a den Wert b hat" erlauben. Evtl. auch hilfreich.

Eins noch: das SCN kann auch hilfreich sein, einfach mal dort nach Dokus suchen. (scn.sap.com) Hier ist z.B. eine einführende Präse: http://scn.sap.com/docs/DOC-10191
Angela1614
...
...
 
Posts: 268
Joined: Fri Jul 23, 2004 2:19 pm


Return to ABAP® für Anfänger

Who is online

Users browsing this forum: No registered users and 9 guests