AMDP (ABAP): Unterschied zwischen den Versionen
Matt (Diskussion | Beiträge) |
Matt (Diskussion | Beiträge) |
||
Zeile 29: | Zeile 29: | ||
Parameterübergaben nur mit '''Value''' möglich. | Parameterübergaben nur mit '''Value''' möglich. | ||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 59: | Zeile 57: | ||
| USING || Angabe, welche DDIC-Objekte und andere AMDPs verwendet werden. Notwendig für die Abhängigkeiten-Verwaltung. | | USING || Angabe, welche DDIC-Objekte und andere AMDPs verwendet werden. Notwendig für die Abhängigkeiten-Verwaltung. | ||
|} | |} | ||
== Codebeispiel AMDP-fähige Klasse == | == Codebeispiel AMDP-fähige Klasse == |
Version vom 26. April 2018, 09:12 Uhr
AMDP steht für ABAP Managed Database Procedures. Damit wird das Paradigma Code-to-Data umgesetzt.
Eine AMDP-Methode ist eine Methode einer ABAP-Klasse, die jedoch statt ABAP-Code SQLScript enthält.
Dieser Artikel enthält grundsätzliche Informationen über AMDP.
Mehr zum in AMDP verwendeten SQLScript siehe SQLScript_(SAP)
AMDP-Klasse definieren
Damit AMDP-Methoden genutzt werden können, muss die Klasse das folgende Interface IF_AMDP_MARKER_HDB vorhanden sein:
CLASS ZMO_CL_AMDP_01 DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
" Interface notwendig, um in Klasse AMDP nutzen zu können
INTERFACES: IF_AMDP_MARKER_HDB.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
Eigenschaften von AMDP-Methoden
Parameterübergaben nur mit Value möglich.
Parametertyp | Unterstützt |
---|---|
IMPORTING | Ja |
EXPORTING | Ja |
RETURNING | Nein |
CHANGING | Ja |
Die AMDP-Methoden müssen im Implementierungs-Teil als solche gekennzeichnet werden:
Schlüsselwort | Bedeutung |
---|---|
BY DATABASE PROCEDURE | Kennzeichnung als AMDP-Methode |
FOR HDB | Ausführung auf Hana-Datenbank |
LANGUAGE SQLSCRIPT | Sprache: SQLScript. Weitere Möglichkeiten: "L" oder "R" |
READ-ONLY | Datenbank liest ausschließlich Daten |
USING | Angabe, welche DDIC-Objekte und andere AMDPs verwendet werden. Notwendig für die Abhängigkeiten-Verwaltung. |
Codebeispiel AMDP-fähige Klasse
CLASS ZMAOT_CL_AMDP_01 DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
" Interface notwendig, um in Klasse AMDP nutzen zu können
INTERFACES: IF_AMDP_MARKER_HDB.
" Import- und Export-Parameter werden als VALUE übergeben
" Export-Parameter einen statischen Datentyp / Tabellentyp haben
CLASS-METHODS:
METHOD_01_READ
EXPORTING
VALUE(ET_AMDP) TYPE ZTW_TT_AMDP_DEMO_01
RAISING
CX_AMDP_ERROR.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ZMAOT_CL_AMDP_01 IMPLEMENTATION.
METHOD METHOD_01_READ BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY USING ZTW_AMDP_DEMO_01.
et_amdp =
select * from ZTW_AMDP_DEMO_01;
ENDMETHOD.
ENDCLASS.
Transporte
Mit AMDP kann das ABAP-Transportsystem genutzt werden - Zusätzliche HANA-Transporte sind nicht notwendig.
Zugriffsrechte und Benutzerparameter
Benutzerparameter: Benutzerparameter (ABAP)
Zugriffsrechte: Zugriffsrechte (SAP)