ABAPCREATE_OBJECT - CREATE OBJECT

General Material Data   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

CREATE OBJECT

Kurzreferenz



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

CX_SY_CREATE_OBJECT_ERROR

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