AMDP (ABAP): Unterschied zwischen den Versionen
Aus MattWiki
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
Eine AMDP-Methode ist eine Methode einer ABAP-Klasse, die jedoch statt ABAP-Code SQLScript enthält. | Eine AMDP-Methode ist eine Methode einer ABAP-Klasse, die jedoch statt ABAP-Code SQLScript enthält. | ||
Mit AMDP wird das '''ABAP-Transportsystem''' genutzt. HANA-Transporte sind nicht notwendig. | |||
Mehr zum in AMDP verwendeten SQLScript siehe [[SQLScript_(SAP)]] | Mehr zum in AMDP verwendeten SQLScript siehe [[SQLScript_(SAP)]] | ||
== AMDP- | == AMDP-Klasse definieren == | ||
Damit AMDP-Methoden genutzt werden können, muss | Damit AMDP-Methoden genutzt werden können, muss die Klasse das Interface IF_AMDP_MARKER_HDB anbieten: | ||
<syntaxhighlight lang="abap"> | <syntaxhighlight lang="abap"> | ||
CLASS | CLASS xxx DEFINITION. | ||
... | |||
PUBLIC SECTION. | PUBLIC SECTION. | ||
INTERFACES: IF_AMDP_MARKER_HDB. | INTERFACES: IF_AMDP_MARKER_HDB. | ||
... | |||
ENDCLASS. | ENDCLASS. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 29: | Zeile 27: | ||
Parameterübergaben nur mit '''Value''' möglich. | Parameterübergaben nur mit '''Value''' möglich. | ||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 44: | Zeile 40: | ||
|} | |} | ||
Die AMDP-Methoden müssen im Implementierungs-Teil als solche gekennzeichnet werden: | |||
{| class="wikitable" | |||
! 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 == | == Codebeispiel AMDP-fähige Klasse == | ||
Zeile 78: | Zeile 89: | ||
ENDCLASS. | ENDCLASS. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Zugriffsrechte und Benutzerparameter == | == Zugriffsrechte und Benutzerparameter == |
Aktuelle Version vom 26. April 2018, 09:14 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.
Mit AMDP wird das ABAP-Transportsystem genutzt. HANA-Transporte sind nicht notwendig.
Mehr zum in AMDP verwendeten SQLScript siehe SQLScript_(SAP)
AMDP-Klasse definieren
Damit AMDP-Methoden genutzt werden können, muss die Klasse das Interface IF_AMDP_MARKER_HDB anbieten:
CLASS xxx DEFINITION.
...
PUBLIC SECTION.
INTERFACES: IF_AMDP_MARKER_HDB.
...
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.
Zugriffsrechte und Benutzerparameter
Benutzerparameter: Benutzerparameter (ABAP)
Zugriffsrechte: Zugriffsrechte (SAP)