Ansicht
Dokumentation
ABAPCALL_METHOD_DYNAMIC - CALL METHOD DYNAMIC
General Material Data rdisp/max_wprun_time - Maximum work process run timeDiese Dokumentation steht unter dem Copyright der SAP AG.
CALL METHOD
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.
- Die Anweisung CALL METHOD soll nur noch für den dynamischen Methodenaufruf verwendet werden. Für den
statischen Methodenaufruf ist sie unnötig und deshalb
obsolet. Siehe Dynamische Aufrufe.
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
-
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 Vendor Master (General Section)
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 9716 Date: 20240329 Time: 090158 sap01-206 ( 89 ms )