Ansicht
Dokumentation

ABAPCALL_METHOD_DYNAMIC - CALL METHOD DYNAMIC

ABAPCALL_METHOD_DYNAMIC - CALL METHOD DYNAMIC

General Material Data   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CALL METHOD

Kurzreferenz



CALL METHOD dynamic_meth ${ parameter_list
                         $| parameter_tables $}.

Wirkung

Diese Anweisung ruft die in dynamic_meth dynamisch angegebene Methode auf (Dynamic Invoke). Die Zuordnung von Aktualparametern zu Formalparametern der Methode erfolgt entweder statisch über parameter_list oder dynamisch über parameter_tables. Die Syntax von parameter_list ist dieselbe wie bei der expliziten Parameterangabe beim statischen Methodenaufruf.

Systemfelder

Bei jedem Methodenaufruf wird das Systemfeld sy-subrc in dem Augenblick des Aufrufes auf 0 gesetzt. Bei der Behandlung von nicht-klassenbasierten Ausnahmen kann dieser Wert geändert werden.

Hinweise

  • Beim dynamischen Methodenaufruf werden die Parameter nicht in runden Klammern übergeben. Die Syntax des dynamischen Methodenaufrufs ist wie die eines Funktionsbausteinaufrufs.

Systemfelder

Das Systemfeld sy-subrc wird beim Aufruf einer Methode auf 0 gesetzt. Falls eine nicht-klassenbasierte Ausnahme auftritt und durch Zuweisung eines Werts behandelt wird, wird sy-subrc auf diesen Wert gesetzt.

Beispiel

Dynamischer Aufruf der statischen Methode GUI_DOWNLOAD der globalen Klasse CL_GUI_FRONTEND_SERVICES zum Speichern des Inhalts einer internen Tabelle in einer Datei auf dem aktuellen Präsentationsserver. Die Namen von Klasse und Methode sind in den Strings class und meth angegeben. Die Schnittstellenparameter werden über die interne Tabelle ptab übergeben und den Ausnahmen der Methode werden über die Tabelle etab Rückgabewerte zugeordnet. Ausnahmen, die beim Methodenaufruf selbst auftreten können, werden in einer TRY-Kontrollstruktur mit der Anweisung CATCH behandelt.

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   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9716 Date: 20240329 Time: 090158     sap01-206 ( 89 ms )