ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Externe Daten verarbeiten →  ABAP-Datenbankzugriffe →  Native SQL →  AMDP - ABAP Managed Database Procedures →  AMDP - Methoden → 

METHOD - BY DATABASE PROCEDURE, FUNCTION

Syntax

METHOD meth BY DATABASE PROCEDURE|FUNCTION
            FOR db
            LANGUAGE db_lang
            [OPTIONS db_options]
            [USING   db_entities].
  ...
ENDMETHOD.


Zusätze:

1. ... FOR db

2. ... LANGUAGE db_lang

3. ... OPTIONS db_options

4. ... USING db_entities

Wirkung

Implementierung einer AMDP-Prozedur oder einer AMDP-Funktion in einer AMDP-Klasse. Der Zusatz BY DATABASE PROCEDURE bzw. BY DATABASE FUNCTION kann im Implementierungsteil einer globalen Klasse aufgeführt werden, die ein passendes Tag-Interface IF_AMDP_MARKER_db enthält.

Die im Deklarationsteil deklarierte Parameterschnittstelle der Methode muss den Voraussetzungen für AMDP-Prozedurimplementierungen bzw. AMDP-Funktionsimplementierungen genügen. Die Parameterschnittstelle einer AMDP-Funktionsimplementierung, die eine CDS-Tabellenfunktion implementiert wird der Definition der CDS-Tabellenfunktion entnommen, welche bei der Deklaration der Methode hinter dem Zusatz FOR TABLE FUNCTION angegeben ist.

Der Zusatz FOR db legt das Datenbanksystem fest, für das die Methode verwendet wird. Der Zusatz LANGUAGE bestimmt die datenbankspezifische Sprache, in der die Methode implementiert wird. Mit OPTIONS werden datenbankspezifische Optionen angegeben. Mit USING werden die von ABAP verwalteten Datenbankobjekte deklariert, die in der AMDP-Methode verwendet werden.

Hinweis

Wenn der aktuelle AS ABAP nicht über ausreichende Berechtigungen zum Verwalten von Datenbankprozeduren in seinem Datenbanksystem hat, kann es zu Syntaxfehlern in AMDP-Methoden kommen. Fehlende Berechtigungen können mit der Transaktion SICK festgestellt werden.

Beispiele

Siehe AMDP - Beispiele.

Zusatz 1

... FOR db

Wirkung

Bestimmt das Datenbanksystem, für das die AMDP-Methode verwendet wird. Die AMDP-Klasse muss das passende Tag-Interface enthalten. Die folgende Tabelle zeigt, die Syntax, die für db angegeben werden kann, welches Datenbanksystem damit bezeichnet wird und welches Tag-Interface dafür notwendig ist.

db Datenbanksystem Tag-Interface
HDB SAP-HANA-Datenbank IF_AMDP_MARKER_HDB

Die AMDP-Methode kann nur in einem AS ABAP aufgerufen werden, dessen zentrale Datenbank vom angegebenen Datenbanksystem verwaltet wird, ansonsten kommt es zu einem Laufzeitfehler.

Hinweise

Zusatz 2

... LANGUAGE db_lang

Wirkung

Bestimmt die datenbankspezifische Sprache, in der die AMDP-Methode implementiert wird. Die folgende Tabelle zeigt, die Syntax für db_lang, mit der die Sprache in Abhängigkeit vom angegebenen Datenbanksystem db angegeben werden muss, die Bedeutung und einen Verweis auf weitere Informationen.

db db_lang Sprache Weitere Informationen
HDB SQLSCRIPT SQLScript SQLScript für die SAP-HANA-Datenbank
HDB LLANG L L für die SAP-HANA-Datenbank (nur SAP-intern und nur für AMDP-Prozedurimplementierungen)

Die ABAP-Syntaxprüfung überprüft die Implementierung der Methode so weit wie möglich für die angegebene Sprache. Voraussetzung ist, dass die Überprüfung auf einem AS ABAP stattfindet, dessen zentrale Datenbank vom angegebenen Datenbanksystem verwaltet wird. Die Überprüfung findet bezüglich der aktuell installierten Version der Datenbank statt. Auf einem AS ABAP mit einem anderen Datenbanksystem findet keinerlei Überprüfung statt.

Zusatz 3

... OPTIONS db_options

Wirkung

Gibt datenbankspezifische Optionen für die AMDP-Prozedur bzw. -Funktion an. Die folgende Tabelle zeigt, die Syntax für option in Abhängigkeit vom angegebenen Datenbanksystem db und die zugehörige Bedeutung.

db option Bedeutung
HDB READ-ONLY In der Datenbankprozedur sind nur Lesezugriffe auf Datenbanktabellen erlaubt.
HDB SUPPRESS SYNTAX ERRORS Nur für die SAP-interne Verwendung: Wenn in der AMDP-Prozedur auf Datenbankobjekte zugegriffen wird, die während der Syntaxprüfung noch nicht vorhanden sind, werden keine Syntaxfehler sondern nur Syntaxwarnungen erzeugt. Wenn ein benötigtes Objekt dann auch zur Laufzeit fehlt, kommt es zu einer abfangbaren Ausnahme.

Die Optionen sind optional mit folgender Ausnahme: Bei der Implementierung einer AMDP-Funktion oder einer L-Prozedur muss der Zusatz OPTIONS READ-ONLY angegeben werden.

Die angegebenen Optionen werden bei der Syntaxprüfung oder zur Laufzeit überprüft.

Zusatz 4

... USING db_entities

Wirkung

Deklaration der von ABAP verwalteten Datenbankobjekte, auf die in der AMDP-Prozedur bzw. -Funktion zugegriffen wird. Hinter USING müssen

des aktuellen Datenbankschema angegeben werden, die in der Prozedur verwendet werden. Diese Datenbankobjekte sind hinter USING und bei ihrer Verwendung in der Prozedur direkt und ohne Angabe des Datenbankschemas anzugeben. Die Angabe einer AMDP-Prozedur oder -Funktion erfolgt mit der Syntax class=>meth, wobei class der Name ihrer AMDP-Klasse und meth der Name der AMDP-Prozedur- bzw. Funktionsimplementierung ist.

Jedes hinter USING aufgeführte Datenbankobjekt muss auch in der Prozedur bzw. Funktion verwendet werden. Andere als obige von ABAP verwalteten Datenbankobjekte dürfen nicht hinter USING aufgeführt werden und auf andere als hinter USING angegebene Datenbankobjekte darf in der Prozedur bzw. Funktion nicht zugegriffen werden mit folgenden Ausnahmen:

Auf Datenbankobjekte des aktuellen Datenbankschemas kann mit Ausnahme des Namensraums /1BCAMDP/ in einer von AMDP verwalteten Datenbankprozedur oder Datenbankfunktion also nur zugegriffen werden, wenn sie von ABAP verwaltet werden und hinter USING aufgeführt sind.

Hinweise



Weiterlesen
AMDP - SQLScript für die SAP-HANA-Datenbank
AMDP - L für die SAP-HANA-Datenbank