Was sind AMDP?
Die Erläuterung eines jeden Akronyms (Abkürzung) beginnt meist mit dessen Aufschlüsselung, um so aus den einzelnen Begriffen die ursprüngliche Bedeutung schlusszufolgern. In diesem Fall jedoch entsteht folgendes Horrendum des IT-Berater Fachjargons.
Advanced Business Application Programming (ABAP) – Managed Database Procedures. (*Hust*)
Vielleicht war dieser Ansatz der Erläuterung nicht der effektivste, aber dafür relativ unterhaltsam. In diesem Bericht jedoch werden wir ganz von vorne anfangen, um nicht nur die Vorteile sondern auch die Herkunft dieser Technologie zu verstehen.
Ursprung
Mit der Einführung von ABAP 7.4 SP02 wurde der sog. “Bottom-Up”-Ansatz durch die Einführung von Stored Procedures (“Gespeicherte Prozedur“) auf einer SAP HANA DB möglich. Dies führte zu zwei bedeutenden Vorteilen: Zum einen konnten vordefinierte Operationen auf der HANA Datenbank komfortabel realisiert werden und zum anderen konnte die Sicherheit der Datenbank erhöht werden, da die Menge an SQL-Queues reduziert werden konnte (Stichwort: SQL-Injection). Hier fand unter anderem eine der ersten Schritte zur Performancesteigerung statt.
Dieser Ansatz jedoch resultierte aufgrund des doppelten Lifecycles, welcher innerhalb von zwei unabhängigen Transportmechanismen stattfand, in einen erheblichen Mehraufwand. Entstand beispielsweise die Notwendigkeit zu einer normalen Änderung im SAP System, mussten sowohl Stored Procedures als auch die konsumierenden ABAP-Programme gleichermaßen angepasst werden. Mehr hierzu können Sie im folgenden Bericht meines Kollegens nachlesen.
AMDP – Top Down
In ABAP 7.4 SP05 wurde der “Top-Down”-Ansatz durch die Einführung von AMDP ermöglicht. Hierbei werden globale AMDP Klassen auf dem Applikationsserver des ABAP-Stacks erzeugt, welche die Definition von Stored Procedures inkludieren. Beim ersten Aufruf der Klasse wird die definierte Stored Procedure als HANA natives Objekt auf der HANA DB angelegt. Da sowohl die Implementierung der konsumierenden Klassen als auch die Gespeicherten Prozeduren auf dem ABAP-Stack liegen, kann der Transport auf das Standard-ABAP Transportwesen beschränkt werden. Dieser Ansatz ist die Grundlage des sogenannten Code Push-Downs.
Aufbau & Funktionalität von AMDP
Wie im vorherigen Abschnitt erläutert sind AMDP globale ABAP-Klassen, welche die Definition von Stored Procedures beinhalten. Tatsächlich wird die Prozedur in einer selbstdefinierten Methode im IMPLEMENTATION Bereich der Klasse beschrieben:
METHOD <meth> BY DATABASE PROCEDURE
FOR <db>
LANGUAGE <db_lang>
[OPTIONS <db_options>]
[USING <db_entities>].
< In diesem Bereich wird der SQL Skript Code eingefügt.>
ENDMETHOD.
Beim ersten Aufruf dieser Methode wird die Stored Procedure auf die Datenbank übertragen und dort als HANA natives Objekt angelegt. Bei zukünftigen Aufrufe ist die Prozedur direkt auf der Datenbank verfügbar, sodass eine erneute Übertragung nicht notwendig ist.
Fazit
Ich hoffe, dass ich mit diesem kurzen Bericht Ihnen näherbringen konnte, dass mittels AMDP ein verbesserter Ansatz für die Umsetzung von Stored Procedures entwickelt wurde und im Kontext des Code Push-Downs gesetzt werden sollte. Wenn Sie weitere Fragen haben, so können Sie gerne auf uns zugehen. Wir helfen Ihnen bei Ihren HANA bezogenen Fragen gerne weiter!