Ansicht
Dokumentation

ABAPCALL_METHOD_PARAMETERS - CALL METHOD PARAMETERS

ABAPCALL_METHOD_PARAMETERS - CALL METHOD PARAMETERS

rdisp/max_wprun_time - Maximum work process run time   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

meth( ... ) - Parameterübergabe

Kurzreferenz



... $[EXPORTING  p1 = a1 p2 = a2 ...$]
    $[IMPORTING  p1 = a1 p2 = a2 ...$]
    $[CHANGING   p1 = a1 p2 = a2 ...$]
    $[RECEIVING  r  = a  $]
    $[EXCEPTIONS $[exc1 = n1 exc2 = n2 ...$]
                $[OTHERS = n_others$] $].

Zusätze:

1. ... EXPORTING p1 = a1 p2 = a2 ...

2. ... IMPORTING p1 = a1 p2 = a2 ...

3. ... CHANGING p1 = a1 p2 = a2 ...

4. ... RECEIVING r = a

5. ... EXCEPTIONS exc1 = n1 exc2 = n2 ... $[OTHERS = n_others$]

Wirkung

Bis auf den Zusatz EXCEPTIONS ordnen diese Zusätze den Formalparametern p1 p2 ... bzw. r der Parameterschnittstelle der aufgerufenen Methode Aktualparameter a1 a2 ... zu. Als Aktualparameter können Datenobjekte und teilweise Ausdrücke angegeben werden, deren Datentyp nach den Regeln der Überprüfung der Typisierung zur Typisierung des entsprechenden Formalparameters passt.

Mit Ausnahme des Rückgabewerts r bei funktionalen Methoden und der Angabe von Rechenausdrücken bei Eingabeparametern übernimmt jeder Formalparameter zum Zeitpunkt des Aufrufs sämtliche Eigenschaften des zugeordneten Aktualparameters. Der Zusatz EXCEPTIONS ermöglicht die Behandlung nicht-klassenbasierter Ausnahmen. Die Reihenfolge der Zusätze ist vorgeschrieben.

Hinweise

  • Die Formalparameter und nicht-klassenbasierten Ausnahmen einer Methoden werden als deren Parameterschnittstelle durch die Zusätze der Anweisungen METHODS bzw. CLASS-METHODS globaler oder lokaler Klassen definiert.
  • Im Gegensatz zum Aufruf von Funktionsbausteinen wird die statische Parameterübergabe von der Syntaxprüfung und nicht nur von der erweiterten Programmprüfung überprüft.

Zusatz 1

... EXPORTING p1 = a1 p2 = a2 ...

Wirkung

Dieser Zusatz ordnet den Eingabeparametern der aufgerufenen Methode Aktualparameter zu. Mit EXPORTING müssen allen nicht-optionalen und können den optionalen Eingabeparametern Aktualparameter zugeordnet werden. Bei Referenzübergabe wird zum Zeitpunkt des Aufrufs eine Referenz auf einen Aktualparameter übergeben. Bei Wertübergabe wird der Inhalt eines Aktualparameters dem entsprechenden Formalparameters zugeordnet.

Bei a1, a2, ... handelt es sich um allgemeine Ausdruckspositionen, d.h. es können neben Datenobjekten auch Funktionen und Ausdrücke als Aktualparameter übergeben werden. In diesem Fall gelten spezielle Regeln.

Hinweise

  • Auf einen hinter EXPORTING angegebenen Aktualparameter vom Typ string oder xstring ist kein Teilfeldzugriff möglich.
  • In der Kurzform des statischen Methodenaufrufs kann der Zusatz EXPORTING auch weggelassen werden.

Beispiel

Aufrufe einer Methode mit der Übergabe von Aktualparametern an Eingabeparameter. Der erste Aufruf ist die syntaktische Kurzform des zweiten Aufrufs. Beide haben die gleiche Funktionalität.

Zusatz 2

... IMPORTING p1 = a1 p2 = a2 ...

Wirkung

Dieser Zusatz ordnet den Ausgabeparametern der aufgerufenen Methode Aktualparameter zu. Mit IMPORTING können allen Ausgabeparametern Aktualparameter zugeordnet werden müssen aber nicht. Bei Referenzübergabe wird zum Zeitpunkt des Aufrufs eine Referenz auf einen Aktualparameter übergeben. Bei Wertübergabe wird der Inhalt eines Ausgabeparameters nur bei fehlerfreier Beendigung der Methode dem jeweiligen Aktualparameter zugewiesen.

Die Aktualparameter sind Ergebnispositionen, d.h. es können Variablen und schreibbare Ausdrücke angegeben werden. In diesem Fall gelten spezielle Regeln.

  • Beim funktionalen Methodenaufruf können als Aktualparameter vorhandene Variablen bzw. schreibbare Ausdrücke aber keine Inline-Deklarationen angegeben werden.
  • Inline-Deklarationen DATA(var) oder FINAL(var) können auch für eigenständige Methodenaufrufe angegeben werden. Wenn bei Angabe einer Inline-Deklaration ein Formalparameter vollständig typisiert ist, wird dieser Typ für die Deklaration verwendet. Wenn der Formalparameter generisch typisiert ist, werden folgende Datentypen verwendet:
  • string bei csequence und clike

  • xstring bei xsequence

  • decfloat34 bei numeric und decfloat

  • p der Länge 8 ohne Nachkommastellen bei generischem p

  • Der Standardschlüssel bei einem Standardtabellentyp mit generischem primärem Tabellenschlüssel

Andere generische Datentypen können für die Inline-Deklaration nicht korrekt angegeben werden und führen zu einem Syntaxfehler.

Hinweise

  • Wenn beispielsweise ein Formalparameter mit dem generischen Typ c oder x typisiert ist, kann nicht string bzw. xstring als Typ für eine Inline-Deklaration verwendet werden, da dann die Überprüfung der Typisierung fehlschlägt.
  • Funktionale Methodenaufrufe stehen auf der rechten Seite von Zuweisungen oder sind Teil von Ausdrücken, wo keine Inline-Deklarationen möglich sind.

Beispiel

Die Methode GET_DOCU der Klasse CL_ABAP_DOCU_ITF hat zwei Eingabe- und zwei Ausgabeparameter sowie einen Rückgabewert, der den Erfolg der Methodenausführung signalisiert. Die Methode wird funktional als Operand eines Vergleichsausdrucks in einem logischen Ausdruck aufgerufen. Die ausgegebenen Werte werden nur bei erfolgreichem Abschluss in einem weiteren Methodenaufruf weiterverwendet.

Zusatz 3

... CHANGING p1 = a1 p2 = a2 ...

Wirkung

Dieser Zusatz ordnet den Ein-/Ausgabeparametern aufgerufenen Methode Aktualparameter zu. Mit CHANGING müssen allen nicht-optionalen und können den optionalen Ein-/Ausgabeparametern Aktualparameter zugeordnet werden. Bei Referenzübergabe wird zum Zeitpunkt des Aufrufs eine Referenz auf einen Aktualparameter übergeben. Bei Wertübergabe wird der Inhalt eines Aktualparameters dem entsprechenden Formalparameters zugeordnet. Bei Wertübergabe wird der modifizierte Inhalt eines Ein-/Ausgabeparameters nur bei fehlerfreier Beendigung der Methode dem jeweiligen Aktualparameter zugewiesen.

Die Aktualparameter sind Ergebnispositionen, d.h. es können Variablen und schreibbare Ausdrücke angegeben werden. In diesem Fall gelten spezielle Regeln.

Beispiel

Aufruf einer Methode mit Ein-/Ausgabeparameter.

Zusatz 4

... RECEIVING r = a

Wirkung

Dieser Zusatz ordnet dem Rückgabewert der aufgerufenen Methode einen Aktualparameter zu. Er ist nur beim eigenständigen Methodenaufruf, nicht beim funktionalen Methodenaufruf möglich. Dem Rückgabewert einer funktionalen Methode kann mit RECEIVING ein Aktualparameter zugeordnet werden. Der Datentyp des Aktualparameters muss nicht den allgemeinen Regeln der Überprüfung der Typisierung folgen, sondern es genügt, wenn der Rückgabewert nach den Konvertierungsregeln in den Aktualparameter konvertierbar ist.

Bei fehlerfreier Beendigung der Methode wird der Inhalt des Formalparameters dem Aktualparameter zugewiesen, wobei der Inhalt bei Bedarf konvertiert wird. Wenn es dabei zu einer Ausnahme kommt, ist diese nicht behandelbar, sondern führt immer zu einem Laufzeitfehler.

Der Aktualparameter ist eine Ergebnisposition, d.h. es können Variablen und schreibbare Ausdrücke angegeben werden. In diesem Fall gelten spezielle Regeln.

Als Aktualparameter kann eine vorhandene Variable bzw. ein Ausdruck oder eine Inline-Deklaration DATA(var) oder FINAL(var) angegeben werden. Eine Inline-Deklaration erfolgt mit dem vollständig bekannten Datentyp des Rückgabewerts.

Hinweis

Die Verwendung des Zusatzes RECEIVING ist beim statischen Methodenaufruf eher unüblich. Eine funktionale Methode mit einem Rückgabewert wird nämlich üblicherweise nicht als eigenständiger Methodenaufruf , sondern als funktionaler Methodenaufruf an Operandenpositionen aufgerufen.

Beispiel

Aufrufe einer funktionalen Methode mit Rückgabewert. Der erste Aufruf ist der in diesem Fall übliche funktionale Methodenaufruf. Der zweite Aufruf demonstriert die eher unübliche Verwendung des RECEIVING-Zusatzes. Das Ergebnis ist in beiden Fällen gleich.

Zusatz 5

... EXCEPTIONS exc1 = n1 exc2 = n2 ... $[OTHERS =n_others$]

Wirkung

Dieser Zusatz ist nur beim eigenständigen Methodenaufruf, nicht beim funktionalen Methodenaufruf möglich. Die angegebenen Ausnahmen müssen in der Parameterschnittstelle der Methode vorhanden sein.

Hinweise

  • Die Zuordnung des Wertes 0 zu einer Ausnahme bedeutet, dass der Aufrufer diese Ausnahme ignorieren will. Wenn die Ausnahme in der Methode auftritt kommt es zwar nicht zu einem Laufzeitfehler, die Ausnahme kann aber auch nicht behandelt werden.

Beispiel

Behandlung nicht-klassenbasierter Ausnahmen bei einem Methodenaufruf.






CPI1466 during Backup   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 16908 Date: 20240511 Time: 003610     sap01-206 ( 187 ms )