ABAPCREATE_OBJECT - CREATE OBJECT
General Material Data BAL Application Log DocumentationDiese Dokumentation steht unter dem Copyright der SAP AG.
CREATE OBJECT
Syntaxformen
Klasse implizit festlegen
1. CREATE OBJECT oref [area_handle][parameter_list].
Klasse explizit festlegen
2. CREATE OBJECT oref [area_handle]
TYPE { class [parameter_list] }
| { (name) [parameter_list|parameter_tables] }.
Wirkung
Die Anweisung CREATE OBJECT erzeugt eine Instanz einer Klasse bzw. ein Objekt und weist die Referenzauf das Objekt der Referenzvariablen oref zu. Direkt nach der Erzeugung des Objekts wird der Instanzkonstruktor der Klasse aufgerufen.
Standardmäßig wird das Objekt im internen Modus des aktuellen Programms angelegt und lebt dort so lange, wie es benötigt wird. Wenn es von keiner Referenzvariablen mehr referenziert wird, wird es vomGarbageCollector gelöscht. Mit dem Zusatz area_handle kann das Objekt alsShared Object angelegt werden.
Die Referenzvariable oref muss als Objektreferenzvariable deklariert sein. Auf die Instanzkomponenten eines mit CREATE OBJECT erzeugten Objekts kann nur über Objektreferenzvariablen zugegriffen werden (sieheDatenobjekte in Operandenpositionen).
Die Klasse des erzeugten Objekts kann mit dem Zusatz TYPE festgelegt werden. Der statische Typ der Objektreferenzvariablen muss nach den Regeln fürZuweisungenzwischen Objektreferenzvariablen allgemeiner als die Klasse des erzeugten Objekts oder identisch mit dieser sein.
Mit den Zusätzen parameter_listbzw. parameter_tablesmüssen die nicht-optionalen Eingabeparameter des ersten explizit implementierten Instanzkonstruktorsversorgt werden, der auf dem Pfad des Vererbungsbaums von der instanzierten Klasse zur Wurzelklasseobject liegt. Weiterhin können den nicht-klassenbasierten Ausnahmen des Instanzkonstruktors über diese Zusätze Rückgabewerte zugeordnet werden.
Wenn bei der Erzeugung des Objekts eine behandelbare Ausnahme in der Laufzeitumgebung auftritt, wirddas Objekt nicht erzeugt und die Objektreferenzvariable oref wird initialisiert. Wird nach der Erzeugung des Objekts im Instanzkonstruktor der Klasse eine behandelbare Ausnahme ausgelöst oder eineNachrichtmit MESSAGE RAISINGgesendet, wird das erzeugte Objekt wieder gelöscht und die Objektreferenzvariable oref initialisiert.
Rückgabewert
Die Anweisung CREATE OBJECT setzt bei erfolgreicherAusführung sy-subrc auf 0. Werte ungleich 0 werden bei der Behandlung nicht-klassenbasierter Ausnahmen des Instanzkonstruktors mit der Angabe von EXCEPTIONS in parameter_spec gesetzt.
Hinweis
Die Erzeugung einer Instanz einer Klasse ist nur dort erlaubt, wo dies der Zusatz CREATE derAnweisung CLASS DEFINITION zulässt.
Ausnahmen
Behandelbare Ausnahmen
- Ursache: Es wird versucht ein abstrakte Klasse zu instanzieren
Laufzeitfehler: CREATE_OBJECT_CLASS_ABSTRACT (abfangbar) - Ursache: Die im Zusatz TYPE angegebene Klasse ist nicht vorhanden
Laufzeitfehler: CREATE_OBJECT_CLASS_NOT_FOUND (abfangbar) - Ursache: Es wird versucht eine private Klasse von außen zu instanzieren
Laufzeitfehler: CREATE_OBJECT_CREATE_PRIVATE (abfangbar) - Ursache: Es wird versucht eine geschützte Klasse von außen zu instanzieren
Laufzeitfehler: CREATE_OBJECT_CREATE_PROTECTED (abfangbar)
Unbehandelbare Ausnahmen
- Ursache: Es muss eine Referenz als Zielvariable angegeben werden.
Laufzeitfehler: CREATE_OBJECT_NO_REFTYPE:
General Data in Customer Master TXBHW - Original Tax Base Amount in Local Currency
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6914 Date: 20120526 Time: 193752 triton ( 204 ms )






