AMDP (ABAP): Unterschied zwischen den Versionen
Aus MattWiki
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
AMDP steht für ABAP Managed Database Procedures. Damit wird das Paradigma Code-to-Data umgesetzt. | 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 SQLScript siehe [[SQLScript_(SAP)]] | 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: | |||
<syntaxhighlight lang="abap"> | |||
CLASS xxx DEFINITION. | |||
... | |||
PUBLIC SECTION. | |||
INTERFACES: IF_AMDP_MARKER_HDB. | |||
... | |||
ENDCLASS. | |||
</syntaxhighlight> | |||
== Eigenschaften von AMDP-Methoden == | |||
Parameterübergaben nur mit '''Value''' möglich. | |||
{| class="wikitable" | |||
! Parametertyp !! Unterstützt | |||
|- | |||
| IMPORTING || Ja | |||
|- | |||
| EXPORTING || Ja | |||
|- | |||
| RETURNING || Nein | |||
|- | |||
| CHANGING || Ja | |||
|} | |||
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 46: | Zeile 89: | ||
ENDCLASS. | ENDCLASS. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Zugriffsrechte und Benutzerparameter == | |||
Benutzerparameter: [[Benutzerparameter (ABAP)]] | |||
Zugriffsrechte: [[Zugriffsrechte (SAP)]] | |||
[[Category:ABAP]] | [[Category:ABAP]] |
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)