AMDP (ABAP): Unterschied zwischen den Versionen

Aus MattWiki
Keine Bearbeitungszusammenfassung
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.


Mit AMDP kann das ABAP-Transportsystem genutzt werden - Zusätzliche HANA-Transporte sind nicht notwendig.
Eine AMDP-Methode ist eine Methode einer ABAP-Klasse, die jedoch statt ABAP-Code SQLScript enthält.


Nachfolgend ein einleitendes Beispiel.
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)]]


== Zugriffsrechte und Benutzerparameter ==
== 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
|}


Benutzerparameter: [[Benutzerparameter (ABAP)]]
Die AMDP-Methoden müssen im Implementierungs-Teil als solche gekennzeichnet werden:


Zugriffsrechte: [[Zugriffsrechte (SAP)]]
{| 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)