Sie verwenden keine aktuelle Browser-Version. Deshalb wird die Webseite möglicherweise nicht korrekt dargestellt. Hier finden Sie weitere Hinweise.

Aufruf von AMDP aus ABAP Routine

SAP Analytics Featured Image

Inhaltsverzeichnis

Wie lassen sich komplexe Logiken mit ABAP Managed Database Procedures umsetzen?

Den meisten BW Beratern ist AMDP (ABAP Managed Database Procedures) vermutlich erstmals begegnet, als SAP die Möglichkeit einführte Transformationslogik durch eine AMDP zu ersetzen. Dadurch konnten Transformationen mit einer gewissen Logik, nämlich als SQL Script, geschrieben werden und trotzdem HANA fähig sein. Seit BW 7.50 SP04 ist es auch möglich Start-, End- und Feldroutinen als AMDP zu implementieren.

Doch was, wenn eine komplexe Logik nicht vollständig als AMDP umgesetzt werden kann?

Dann sollte man zunächst überlegen, ob die Verarbeitung nicht in zwei getrennten Transformationen realisiert werden kann. Hier würde man idealerweise zunächst möglichst viel über AMDP umsetzen und die Reste dann in einer zweiten Transformation mit ABAP lösen.

Aber was, wenn schon eine sehr komplexe ABAP Logik existiert, die sich nicht komplett ersetzen lässt?

Was viele BW Berater vielleicht nicht wissen: Eine AMDP muss nicht immer die komplette ABAP Routine ersetzen, es ist auch möglich sie aus ABAP heraus aufzurufen. Dann ist die Transformation zwar nicht mehr HANA fähig, kann also nicht komplett in der HANA ausgeführt werden, aber sie ist möglicherweise trotzdem schneller als wenn die komplette Logik ausschließlich in ABAP umgesetzt worden wäre.

Dieses Vorgehen bietet sich zum Beispiel an, wenn innerhalb einer ABAP Routine komplexe Selects mit vielen Joins durchgeführt werden sollen. Diese könnten dann in eine AMDP Methode ausgelagert werden.

Beispiel

Nachfolgend ein einfaches Beispiel, welches zeigt wie eine AMDP Methode aus einer klassischen ABAP Startroutine heraus aufgerufen wird. Die AMDP Methode muss in einer Klasse mit dem Interface „if_amdp_marker_hdb“ implementiert werden.

Definition der AMDP Methode „get_doc_number_top_x_amdp“ in der Klasse „ZCL_AES_SD_AMDP“:

Außerdem muss die AMDP Methode in ihrer Implementierung den Zusatz „BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY” erhalten.

Implementierung der AMDP Methode:


Aufruf der AMDP Methode aus einer ABAP Startroutine:


Ein weiterer Vorteil dieses Vorgehens ist, dass so nach und nach einzelne Teile der ABAP Routine in AMDP überführt werden können.

Vielleicht schafft man es so etappenweise doch die gesamte Logik als AMDP zu realisieren. Dies sollte aufgrund der möglichen Geschwindigkeitsvorteile durch eine komplette Verarbeitung in der HANA das Ziel bleiben.

Nehmen Sie Kontakt zu uns auf!

    Mit der Erhebung, Verarbeitung und Nutzung meiner personenbezogenen Daten zur Bearbeitung meiner Anfrage erkläre ich mich einverstanden. Ich kann mein Einverständnis jederzeit ohne Angabe von Gründen widerrufen. Weitere Informationen finden Sie in unserer Datenschutzerklärung.

    Rufen Sie uns an
    +49 6173 3363 000

    Nagarro ES Newsletter
    Newsletter jetzt abonnieren!

    Besuchen Sie uns
    Alle Standorte ansehen

    Newsletter-Anmeldung

    Erhalten Sie alle zwei Monate wertvolles Insider-Wissen zu SAP, unserem Angebot und Veranstaltungen direkt in Ihr Postfach.
    Nagarro ES Newsletter Bild