Debuggen von HANA Experten Skript

In meine vorherigen Blogs habe ich beschrieben wie man ein HANA Experten Skript anlegt zur Berechung der Anzahl Arbeitstagen zwischen zwei Datumsangaben und deren Performance mit der Implementierung einer ABAP Expertenroutine verglichen. Transformationen mit HANA Experten Skript sind jedoch nicht vor Fehlern gefeit. Aus diesem Grund möchte ich mich in diesem Blog mit dem Debuggen von HANA Experten Skript und insbesondere dem SQL Script des HANA Experten Skript beschäftigen. Voraussetzung hierfür ist eine aktuelle SAP GUI und HANA Studio Installation am besten mit installiertem ABAP in Eclipse (AiE) Plug-in, so dass das SQL Script ggf. modifiziert werden kann. Hier ist meine Erfahrung, dass die neusten Versionen meistens stabiler laufen. Schauen wir uns nun das Debugging anhand der Transformation mit HANA Experten Skript aus dem vorherigen Blog an.

Zunächst überprüfe ich in der RSA1 die Implementierung der Transformation. Hierzu öffnet man die Transformation in der Transaktion RSA1 und klickt auf die Schaltfläche SAP-HANA-Experten-Skript zum Anzeigen der Implementierung.

Implementierung HANA Experten Skript prüfen

Implementierung HANA Experten Skript prüfen

Es wird eine Klasse geöffnet, welche die Implementierung des HANA Experten Skript darstellt – einer sogenannten ABAP Managed Database Procedure (AMDP).

Das SQL Script ist in der Methode Procedure implementiert. Diese kann man zwar in der SAP GUI öffnen und sich das SQL Script anschauen, aber zum Debuggen und ggf. Modifizieren benötigt man ABAP in Eclipse (AiE) in einer SAP HANA Studio Installation.

Methode Procedure mit SQL Script

Methode Procedure mit SQL Script

Wir merken uns den Klassennamen /BIC/00O2THO6D6E6TIJ7J1MZNGBEP und wechseln ins HANA Studio. Unser SAP BW 7.4 on HANA mit SP13 hat die System ID SA1, deshalb finden wir die Prozedur auch im HANA Schema SAPSA1 wieder. Hierzu wechseln wir in die HANA-Modeler Perspektive. Und suchen im Schema SAPSA1 die Prozedur und öffnen diese.

DB Prozedur in SAP HANA

DB Prozedur in SAP HANA

Anschließend wird über das Menü Window -> Perspective -> Open Perspective -> Other… und anschließender Auswahl der Deubg Perspektive in die Debug Perspektive gewechselt. Hier setzt man Breakpoints in die Datenbank Prozedur. Dann muss man eine Debug Konfiguration anlegen.

Debug Konfiguration in der Debug Perspektive anlegen

Debug Konfiguration in der Debug Perspektive anlegen

In der Debug Konfiguration wird eine neue Konfiguration für SAP HANA Procedure angelegt. Bei dieser wird unter dem Reiter General die Option Debug an external Session ausgewählt. Es wird das relevante HANA System ausgewählt und bei der Option Set Filter Attribute macht es Sinn den HANA User SAPSA1 anzugeben. Das SAP BW verwendet den SAP User für den Zugriff auf die SAP HANA Datenbank.

Debug Konfiguration anlegen

Debug Konfiguration anlegen

Anschließend wird über die Schaltfläche Debug eine Debugger Session gestartet. Der Thread überwacht alle HANA DB Prozeduraufrufe des HANA Users SAPSA1.

Aktvier Debugger

Aktvier Debugger

Nun können wir das HANA Experten Skript debuggen indem wir den DTP in der RSA1 ausführen.

DTP ausführen in der RSA1

DTP ausführen in der RSA1

Daraufhin beginnt der Ladeprozess, der im SAP BW wie gewohnt im Monitor überwacht werden kann.

DTP Monitor

DTP Monitor

Die Ausführung der HANA DB Prozedur wird im Debugger angehalten und kann nun im Debugger näher analysiert werden.

HANA Debugger Stored Procedure

HANA Debugger Stored Procedure

Es können nun zum Beispiel Variablenwerte wie in diesem Fall der Tabelle lt_input betrachtet werden. Dabei kann man unterschiedliche Operationen durchführen wie man Sie aus der Datenvorschau des SAP HANA Studio kennt wie z.B. Filtern der Daten.

HANA Debugger Daten von Variablen anzeigen

HANA Debugger Daten von Variablen anzeigen

Das war es dann auch schon zum Debuggen von SAP HANA Experten Skript – wer also schon Erfahrung mit Debugging in Eclipse hat, muss sich nicht lange einarbeiten.

Getagged mit: , ,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

*