Mit der erweiterten Möglichkeit in BW-Transformationen neben ABAP auch AMDP-Routinen mit SQL-Script für die Umsetzung der Logiken zu verwenden, sind auch unterschiedliche Ansätze hinzugekommen, diese Implementierungen zu prüfen und zu testen.
Der Artikel beschreibt die Möglichkeiten, wie sich AMDP-Routinen im SAPDie SAP SE mit Sitz im baden-württembergischen Walldorf ist ein... BW während der Entwicklung und nach der Implementierung optimal testen, sowie auf ihre Funktionalität als auch auf Fehler prüfen lassen.
Im ABAP besteht unter anderem die Möglichkeit während der Entwicklung im ABAP-Editor den Quellcode über die „Prüfen-Funktion“ zu prüfen und sich bereits erste Fehler anzeigen zu lassen. Auch lassen sich sogenannte „Break Points“ im Quellcode setzen, die später im Debugging-Modus während der Ausführung der Routine für einen „Stop“ an der entsprechenden Stelle sorgen, um z.B. dann Schritt-für-Schritt fortfahren zu können. Hierdurch lassen sich die Inhalte von Tabellen und Variablen anzeigen und die Zuweisungen innerhalb des Quellcodes detailliert prüfen. Ähnliche Möglichkeiten bestehen auch für die Routinen, welche mittels SQL-Script umgesetzt werden, wobei sich das Vorgehen hier ein wenig unterscheidet. Nachfolgend soll auf zwei unterschiedliche Möglichkeiten eingegangen werden, um den Quellcode während der Entwicklung und auch nach erfolgreicher Implementierung prüfen zu können.
Debugging und Simulation von AMDP-Routinen in SAP BW Transformationen
Nachfolgend werden zwei Möglichkeiten beschrieben, wie sich AMDP-Transformationsroutinen testen und auf Fehler prüfen lassen. Dabei sollte beachtet werden, dass sich die beiden Methoden grundsätzlich darin unterscheiden, in welcher Umgebung sie angewendet werden. Während die zweite Methode, dem Debugging von AMDP-Routinen in SAP BW Transformationen, auf der Applikationsebene stattfindet, ist für die erste Methode, der Simulation einer SQL-Transformationsroutine, ein Datenbankbenutzer notwendig, da sie in der SQL-Konsole der Datenbank durchgeführt wird. Auch für die verschiedenen Entwicklungsphasen gibt es Unterschiede bzgl. der Anwendung zwischen den beiden Methoden. So kann eine Transformation grundsätzlich nur dann „debuggt“ werden, wenn sie fehlerfrei und bereits aktiviert ist, sowie auch ein entsprechender DatentransferprozessLegt fest, wie Daten von einem persistenten Objekt, zu einem... zum Zielobjekt bereits besteht. Die Simulation hingegen kann bereits während der Entwicklung stattfinden. Zwar wird auch hier vorausgesetzt, dass der Quellcode fehlerfrei ist, jedoch muss noch kein entsprechender Datenfluss vollständig angelegt worden sein, da sich die entsprechenden Objekte einfach in der SQL-Konsole simulieren lassen.
Simulation von AMDP-Routinen einer SAP BW-Transformation
Grundsätzliches Vorgehen:
- Umsetzung eines anonymen BLOCKS: DO BEGIN … END;
- Einfügen des Codes aus der BW-Transformation
- Vor dem eigentlichen „Transformations“-Code muss der “intab” noch definiert und aus der Tabelle des Source-ADSO gefüllt werden (z.B. aktive Tabelle)
In folgendem Beispiel befindet sich eine Transformation zwischen zwei ADSOs welche eine AMDP-Routine beinhaltet:
Um z.B. den Test-Aufwand während der Entwicklung zu reduzieren, da hierfür immer ein DTP ausgeführt und evtl. auch noch der AMDP-Debugger genutzt werden muss, bietet es sich an den „Entwicklungs“-Test in der SQL-Konsole durchzuführen.
Hierfür wird die Routine ein wenig angepasst und in die SQL-Konsole übertragen:
- Öffnen des SQL-Editors in der HANA-Datenbank Umgebung
- Implementierung des SQL-(Skript) Codes der AMDP-Routine zwischen “do begin” und “end;”
- Füllen des “intab” mit den Daten des Quell-ADSOs aus der Transformation
- Erstellen eines “SELECT”-Statements auf das “OutTab”, um das Ergebnis anzeigen zu lassen
Debugging von AMDP-Routinen in einer BW-Transformation
Grundsätzliches Vorgehen:
- Routine in „A-Class“ öffnen
- Breakpoint setzen
- Datentransferprozess ausführen
- Wechsel in Debugging Perspektive
Das in „Methode 1“ beschriebene Datenmodell lässt sich auf Applikationsebene direkt im BW/4HANA Schritt für Schritt mittels Debugger prüfen. Hierfür muss die entsprechende Routine fehlerfrei und aktiviert, sowie ein Datentransferprozess vorhanden sein.
Wird die entsprechende Routine aus der Transformation heraus ausgewählt, wird auch automatisch die M-Version der Routine geöffnet:
Fazit
Beide aufgezeigten Möglichkeiten erlauben es dem Entwickler die Analyse und Prüfung von AMDP-Routinen in den unterschiedlichen Entwicklungsphasen durchzuführen und somit frühzeitig Fehler oder Schwierigkeiten zu entdecken.
Christopher Kampmann
Senior Manager
SAP Information Management
christopher.kampmann@isr.de
+49 (0) 151 422 05 448