Queryvariablen vom Typ SAP HANA Exit

Ab SAP BW 7.50 besteht die Möglichkeit, Queryvariablen auch durch einen SAP HANA Exit in SQLScript zu implementieren. Damit kann die Variable vorbelegt oder berechnet werden, ohne dass der ABAP-Stack involviert ist. Das Vorgehen dazu habe ich in der aktuellen Ausgabe meines Buches „SQLScript für SAP HANA“ noch nicht beschrieben, weshalb ich es hier nachholen will.

Der große Vorteil dieser Queryvariablen liegt darin, dass die Ausführung komplett in der SAP HANA erfolgen kann. Damit ist es möglich, die Variablenlogik auch in den zu einer Query generierten, externen Views zu nutzen. Der Verarbeitungstyp SAP HANA Exit ist nur für Merkmalsvariablen mit genau einem Wert möglich. Diese können in den BW-Modeling Tools im BW angelegt werden. Der zughörige Code wird in einer AMDP-Klasse hinterlegt, die den BAdI RSROA_VAR_HANA_EXIT_BADI implementiert. Zuvor muss eine entsprechende Implementierung des Erweiterungsspots RSROA_VARIABLES_HANA_EXIT erfolgen. Das Vorgehen dazu ist am Ende dieses Beitrags unter „Implementierung des Erweiterungsspots RSROA_VARIABLES_HANA_EXIT“ erklärt.

Der Verarbeitungszeitpunkt des Exits hängt von der Eingabebereitschaft der Variablen ab. Im Falle einer eingabebereiten Variablen berechnet der Exit einen Vorschlagswert vor der Anzeige der Parameterscreens. Falls die Variable nicht eingabebereit ist, so wird der Exit nach Erfassung der Input-Variablen durchlaufen. Entsprechend kann sich die Logik im Exit darauf beziehen.

Beschreibung des Konzepts

Ein Exit sie alle zu berechnen

Leider erinnert das Konzept der SAP HANA Exits für Queryvariablen wieder stark an das alte, ABAP-basierte Vorgehen. Hierbei gab es genau einen Exit für alle Variablen. Entsprechend musste dann irgend wie verzweigt werden, je nachdem, welche Variable gerade gefüllt werden soll.

Das gleiche Konzept wurde auch bei der SAP HANA Variante umgesetzt. Das bedeutet, es muss stets abgefragt werden, für welche Variable jetzt die Werte beschafft werden sollen. Aber immerhin, es kann mehrere BAdI-Implementierungen geben.

Die AMDP-Methoden

IF_RSROA_VAR_HANA_EXIT~PROCESS

Die AMDP-Methode PROCESS berechnet den Wert der Variablen und liefert ihn im Parameter C_VALUE zurück. Dazu können die Informationen aus den IMPORT-Parametern verwenden werden. Allerdings sind die Parameter mit den anderen Variablen relativ generisch gehalten. Dies können Sie auch gut an dem Screenshot mit der Signatur der Methode sehen:

Schnittstelle / Signatur der AMDP-Methode PROCESS

Kommentar verfassen

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