Ansicht
Dokumentation

ABAPCALL_METHOD - CALL METHOD

ABAPCALL_METHOD - CALL METHOD

General Material Data   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CALL METHOD

Kurzreferenz



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

CX_SY_DYN_CALL_EXCP_NOT_FOUND

  • Ursache: Ausnahme nicht vorhanden
    Laufzeitfehler: DYN_CALL_METH_EXCP_NOT_FOUND (abfangbar)

CX_SY_DYN_CALL_ILLEGAL_CLASS

  • Ursache: Angegebene Klasse nicht vorhanden
    Laufzeitfehler: DYN_CALL_METH_CLASS_NOT_FOUND (abfangbar)

CX_SY_DYN_CALL_ILLEGAL_METHOD

  • 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)

CX_SY_DYN_CALL_ILLEGAL_TYPE

  • 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)

CX_SY_DYN_CALL_PARAM_MISSING

  • 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)

CX_SY_REF_IS_INITIAL

  • 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 )