Wie komme ich zu einer bestimmten Stelle. Beispiel:
Wenn ich eine Tabelle in der Auswertung habe, wie komme ich an die Stelle bevor die Tabelle befüllt wird OHNE den gesamten Code Schritt für Schritt durchzugehen? /h und dann ausführen führt oft zu unnötigen Code. Manchmal erkennt man das sehr gut anhand der Namen der Variablen, aber leider oft nicht.
Bis ich die Stelle gefunden habe, dauert das bei mir immer so lange.
Wie sucht man am besten eurer Meinung mit dem Debugger?
Wie finde ich den Namen von der internen Tabelle heraus, die wirklich dann angezeigt wird? Wie finde ich heraus, wo diese interne Tabelle zu finden ist in den 1000 includes?
Bin da für jeden Tipp und Trick sehr dankbar!
Um am schnellsten zu einem SELECT zu kommen würde ich einen (dyn.) Break-Point für diesen im Debugger anlegen (zu finden im Menü).
Um die richtig (interne) Tabelle zu finden ist schon etwas mehr Wissen nötig. Vorallem muss man wissen, welche Technologie eingesetzt wurde um die Daten anzuzeigen und wie diese die Daten bezieht.
Beim ALV ist das zum Beispiel die Methode SET_TABLE_FOR_FIRST_DISPLAY. In diesen kann man dann ebenfalls einen Break-Point anlegen und man bleibt dann stehen sobald die interne Tabelle zur Anzeige gebracht wird. Bei anderen Technologien ist das dann wierum nicht so einfach. Bei einer Listprozessor-Ausgabe würde sich z.B. der WRITE-Befehl anbieten nur kann der auch anderwertig verwendet werden. Somit muss man eventuell beim Debuggen etwas weiter ausholen. Bei anderen Arten wie z.B. HTML oder ähnliches wird es dann schon sehr speziell.
P.S: Wichtig im Debugger ist meiner Meinung nach der Aufrufstack (in der Standardeinstellung auf dem zweiten Karteireiter zu finden). Damit kann man einsehen von wo aus und wie man aufgerufen wurde. Z.B. wenn man SET_TABLE_FOR_FIRST_DISPLAY debugged um herauszufinden welche interne Tabelle vom Aufrufer übergeben wurde.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
Das kommt ja auch sehr stark auf die jeweilige Situation bzw. auf den Report an. Manche sind relativ einfach aufgebaut und man sieht sofort im Debugger unter globale Daten die betreffende Tabelle für die Ausgabe und kann somit z.B. einen Watchpoint auf die Tabelle anlegen. Bei manchen komplexeren Auswertungen werden verschiedenste Daten zu einer Ausgabe ermittelt und es kann helfen sich mittels SQL Trace zunächst einen Überblick über die Datenabrufe zu verschaffen.