AMDP Debugging in Transformationsroutinen
Veröffentlicht am 19. Oktober 2020 von | AMDP | BW/4HANA | SQLScript |
Mit AMDP Debugging in Transformationsroutinen im BW/4HANA können Fehler leicht gefunden werden. Ein Auszug aus der 2. Auflage meines Buches ["SQLScript für SAP HANA"](http://Debug-Modus vs. optimierter Modus Damit Prozeduren mit dem AMDP-Debugger analysiert werden können, werden diese im sogenannten Debug-Modus neu kompiliert. Das bedeutet, dass einige Optimierungen nicht durchgeführt werden, die im normalen, optimierten Modus berücksichtigt werden.), erschienen im Rheinwerkverlag, SAP Press.
AMDP-Debugger in den ADT
Ab SAP HANA 1.0 SPS9 und SAP NetWeaver 7.50 gibt es den AMDP-Debugger. Mit ihm kann man ohne direkten Zugriff auf die SAP-HANA-Datenbank und ohne einen SAP-HANA-Benutzer die AMDP-Prozeduren debuggen. Es handelt sich zwar um einen anderen Debugger als sein ABAP-Pendant, die beiden sind jedoch gut in die gleiche Eclipse-Oberfläche integriert. So kann man beim Debuggen im ABAP-Code auch Breakpoints für den AMDP-Code setzen und somit in diesen hineindebuggen. Nur in der Anzeige der Debugging-Sessions sieht man, dass man sich jetzt auf einer anderen Ebene befindet (siehe Abbildung).
Status des AMDP-Debuggers und der Breakpoints
Der AMDP-Debugger muss vor der Verwendung gestartet werden. Dies geschieht entweder automatisch, wenn Sie einen Breakpoint setzen oder manuell durch Auswahl über das Kontextmenü der Zeilennummern innerhalb des SQLScript-Codes einer AMDP-Methode
Ein Breakpoint wird im AMDP-Debugger, wie im ABAP-Debugger auch, als kleiner runder Kreis links von der Zeilennummer dargestellt (siehe Abbildung 1.21). Die Farbe des Kreises hängt vom Status des Breakpoints ab. Die unterschiedlichen Bedeutungen sehen Sie in der Tabelle:
Farbe | Bedeutung |
Blau | Nur kurz direkt nach dem Setzen des Breakpoints. Die Routine muss für das Debuggen nochmals kompiliert werden. |
Grün | Der Breakpoint ist bestätigt und der Debugger aktiv. |
Grau | Der Debugger ist inaktiv. Er kann durch das Kontextmenü auf dem Breakpoint aktiviert werden. |
Weiß | Der Breakpoint ist deaktiviert. Er kann ebenfalls durch das Kontextmenü auf dem Breakpoint aktiviert werden. |
Status der Breakpoint-Markierungen
Nach 10 Minuten Inaktivität deaktiviert sich der Debugger von allein. Der Grund dafür ist, dass ein aktivierter Debugger relativ viele Ressourcen auf der Seite des ABAP-Servers benötigt.
Debugging von BW-Transformationsroutinen
Auch für die Fehlersuche bei BW-Transformationsroutinen kann das AMDP Debugging verwendet werden. Dazu müssen Sie lediglich in den ADT die entsprechende AMDP-Klasse aufrufen und in der jeweiligen Methode an der gewünschten Stelle einen Breakpoint setzen. Bei SAP-BW/4HANA-Systemen müssen Sie darauf achten, dass Sie den Breakpoint in der A-Klasse setzen. Prüfen Sie danach, ob das Kreissymbol für den Breakpoint grün ist und somit der AMDP-Debugger aktiviert wurde. Beim Ausführen des Datentransferprozesses bleibt der AMDP-Debugger dann automatisch an dem Breakpoint stehen.
Hinweis: Probleme beim Debuggen
Wenn der Debugger nicht anhält, kann das unterschiedliche Ursachen haben. Die häufigste Fehlerquelle beim Debuggen in SAP-BW/4HANA-Systemen ist, dass der Breakpoint nicht in der A-Klasse gesetzt wurde.
Bei älteren Systemständen von SAP BW auf SAP HANA muss man teilweise die Option Execute in Background auswählen, damit das System an den Breakpoints anhält. Damit werden dann auch tatsächlich Daten geladen!
Auf neueren Systemständen habe ich aber auch schon erlebt, dass an einem Breakpoint nur dann angehalten wurde, wenn zusätzlich zur Option Serially in the Dialog Process (for Debugging) auch noch die Checkbox Expert Mode angeklickt war (siehe Abbildung).
Probieren Sie gegebenenfalls aus, was bei Ihrem Systemstand funktioniert.
Debug-Modus vs. optimierter Modus
Damit Prozeduren mit dem AMDP-Debugger analysiert werden können, werden diese im sogenannten Debug-Modus neu kompiliert. Das bedeutet, dass einige Optimierungen nicht durchgeführt werden, die im normalen, optimierten Modus berücksichtigt werden.