Ansicht
Dokumentation
ABAPCALL_METHOD - CALL METHOD
General Material Data PERFORM Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
CALL METHOD
Syntaxformen
Statischer Methodenaufruf
1. [CALL METHOD] static_meth(
parameter_list ).
CALL METHOD
static_meth parameter_list.
Kurzschreibweisen
2. [CALL METHOD] { static_meth( )
| static_meth( a )
|
static_meth( p1 = a1 p2 = a2 ... ) }.
Verketteter Methodenaufruf
3. {oref->}|{class=>}meth1(...)->meth2(...)->...->meth( parameter_list ).
Dynamischer Methodenaufruf
4. CALL METHOD dynamic_meth { parameter_list
| parameter_tables }.
Wirkung
Aufruf einer Methode in ABAP Objects. Wir unterscheiden einen statischen Methodenaufruf, bei dem der Bezeichner der Methode vollständig im Programm bekannt sein muss, und einen dynamischen Methodenaufruf, bei dem der Bezeichner der Methode teilweise oder ganz zur Laufzeit bestimmt wird. Der statische Methodenaufruf kann in verschiedenen Schreibweisen durchgeführt werden. Bei der einen Schreibweise werden die Parameter in einem Klammerausdruck übergeben, bei der anderen ohne Klammerausdruck. Für den Klammerausdruck sind Kurzschreibweisen möglich. Weiterhin besteht die Möglichkeit einer Methodenverkettung. Beim dynamischen Methodenaufruf können die Parameter nicht in Klammern angegeben werden und die Anweisung CALL METHOD darf nicht weggelassen werden.
Wenn beim Aufruf einer Instanzmethode über eine Referenzvariable der statische Typ der Referenzvariablen
eine Oberklasse des dynamischen Typs ist, können über den dynamischen Methodenaufruf alle
sichtbaren Methoden des dynamischen Typs aufgerufen werden, während beim statischen Methodenaufruf nur die sichtbaren Methoden des statischen Typs aufgerufen werden können.
Systemfelder
Das Systemfeld sy-subrc wird beim Aufruf einer Methode auf 0 gesetzt. Falls eine durch Zuweisung eines Werts behandelte
nicht-klassenbasierte Ausnahme auftritt, wird sy-subrc auf diesen Wert gesetzt.
Hinweis
Funktionale Methoden können statt mit CALL METHOD auch an
Operandenpositionen für Funktionen und Ausdrücke aufgerufen werden.
Ausnahmen
Behandelbare Ausnahmen
-
Ursache: Ausnahme nicht vorhanden
Laufzeitfehler: DYN_CALL_METH_EXCP_NOT_FOUND (abfangbar)
-
Ursache: Angegebene Klasse nicht vorhanden
Laufzeitfehler: DYN_CALL_METH_CLASS_NOT_FOUND (abfangbar)
-
Ursache: Die Methode ist nicht zugreifbar.
Laufzeitfehler: CALL_METHOD_NOT_ACCESSIBLE -
Ursache: Die aufgerufene Methode ist noch nicht implementiert.
Laufzeitfehler: CALL_METHOD_NOT_IMPLEMENTED -
Ursache: Aufruf des statischen Konstruktors
Laufzeitfehler: DYN_CALL_METH_CLASSCONSTRUCTOR (abfangbar) -
Ursache: Aufruf des Instanzkonstruktors
Laufzeitfehler: DYN_CALL_METH_CONSTRUCTOR (abfangbar) -
Ursache: Methode nicht vorhanden
Laufzeitfehler: DYN_CALL_METH_NOT_FOUND (abfangbar) -
Ursache: Methode ist nicht statisch
Laufzeitfehler: DYN_CALL_METH_NO_CLASS_METHOD (abfangbar) -
Ursache: Aufruf einer nicht sichtbaren Methode
Laufzeitfehler: DYN_CALL_METH_PRIVATE (abfangbar) -
Ursache: Aufruf einer nicht sichtbaren Methode
Laufzeitfehler: DYN_CALL_METH_PROTECTED (abfangbar)
-
Ursache: Typkonflikt bei Aufruf der Methode.
Laufzeitfehler: CALL_METHOD_CONFLICT_GEN_TYPE -
Ursache: Typkonflikt bei Aufruf der Methode.
Laufzeitfehler: CALL_METHOD_CONFLICT_TAB_TYPE -
Ursache: Typkonflikt bei Aufruf der Methode.
Laufzeitfehler: CALL_METHOD_CONFLICT_TYPE -
Ursache: Falsche Art eines Parameters
Laufzeitfehler: DYN_CALL_METH_PARAM_KIND (abfangbar) -
Ursache: Aktualparameter kann nicht gefüllt werden
Laufzeitfehler: DYN_CALL_METH_PARAM_LITL_MOVE (abfangbar) -
Ursache: Falscher Tabellen-Typ eines Parameters
Laufzeitfehler: DYN_CALL_METH_PARAM_TAB_TYPE (abfangbar) -
Ursache: Falscher Typ eines Parameters
Laufzeitfehler: DYN_CALL_METH_PARAM_TYPE (abfangbar)
-
Ursache: Fehlender Aktualparameter
Laufzeitfehler: DYN_CALL_METH_PARAM_MISSING (abfangbar) -
Ursache: Parameter-Referenz ist leer
Laufzeitfehler: DYN_CALL_METH_PARREF_INITIAL (abfangbar)
CX_SY_DYN_CALL_PARAM_NOT_FOUND
-
Ursache: Falscher Name eines Parameters
Laufzeitfehler: DYN_CALL_METH_PARAM_NOT_FOUND (abfangbar)
-
Ursache: Referenzvariable ist leer
Laufzeitfehler: DYN_CALL_METH_REF_IS_INITIAL (abfangbar)
Unbehandelbare Ausnahmen
-
Ursache: Nicht erlaubte Parameter bei dynamischem Methodenaufruf. Relevant für Instanzkonstruktoren bei dynamischer Instanzierung.
Laufzeitfehler: CALL_METHOD_PARMS_ILLEGAL
General Material Data SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 10209 Date: 20240425 Time: 054409 sap01-206 ( 92 ms )