Ansicht
Dokumentation

ABAPCREATE_DATA - CREATE DATA

ABAPCREATE_DATA - CREATE DATA

ABAP Short Reference   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CREATE DATA

Kurzreferenz



Datentyp implizit festlegen

1. CREATE DATA dref $[area_handle$].

Datentyp über eingebaute ABAP-Typen festlegen

2. CREATE DATA dref $[area_handle$]
                   TYPE ${abap_type$|(name)$}
                        $[LENGTH len$] $[DECIMALS dec$].

Datentyp über vorhandenen Typ festlegen

3. CREATE DATA dref $[area_handle$]
                   ${ ${TYPE $[LINE OF$] ${type$|(name)$}$}
                   $| ${LIKE $[LINE OF$] dobj$} $}.

Daten mit Bezug auf ein Typbeschreibungsobjekt erzeugen

4. CREATE DATA dref $[area_handle$]
                   TYPE HANDLE handle.

Referenzvariablen erzeugen

5. CREATE DATA dref $[area_handle$]
                   TYPE REF TO ${type$|(name)$}.

Interne Tabellen erzeugen

6. CREATE DATA dref $[area_handle$]
                   ${ ${TYPE $[STANDARD$]$|SORTED$|HASHED TABLE
                      OF $[REF TO$] ${type$|(name)$}$}
                   $| ${LIKE $[STANDARD$]$|SORTED$|HASHED TABLE OF dobj$} $}
                   $[ ${WITH $[UNIQUE$|NON-UNIQUE$]
                           ${KEY ${comp1 comp2 ...$}$|(keytab)$}$|${DEFAULT KEY$}$}

                   $| ${WITH EMPTY KEY$} $]
                   $[INITIAL SIZE n$].

Datenobjekt mit abgeleiteten BDEF-Typen

11. CREATE DATA dref TYPE (der_type).

Wirkung

Die Anweisung CREATE DATA erzeugt ein anonymes Datenobjekt und weist die Referenz auf das Datenobjekt der Referenzvariablen dref zu.

Standardmäßig wird das Datenobjekt in der internen Sitzung (Heap) des aktuellen Programms angelegt und lebt dort so lange, wie es benötigt wird. Wenn keine Datenreferenz und kein Feldsymbol mehr auf das Datenobjekt oder einen Teil des Datenobjekts zeigt, wird es vom Garbage Collector gelöscht. Mit dem Zusatz area_handle kann das Datenobjekt als Shared Object angelegt werden.

Die Referenzvariable dref muss als Datenreferenzvariable deklariert sein. Auf den Inhalt eines mit CREATE DATA erzeugten Datenobjekts kann nur über dereferenzierte Datenreferenzvariablen oder Feldsymbole zugegriffen werden (siehe Datenobjekte in Operandenpositionen).

Der Datentyp des erzeugten Datenobjekts kann mit dem Zusatz TYPE und einer Typangabe oder mit dem Zusatz LIKE und der Angabe eines Datenobjekts definiert werden. Die Syntax erlaubt die dynamische Definition von elementaren Datentypen, Referenztypen und Tabellentypen. Mit dem Zusatz HANDLE kann Bezug auf beliebige Typbeschreibungsobjekte der RTTS genommen werden. Der statische Typ der Datenreferenzvariablen muss nach den Regeln im Abschnitt Zuweisungen zwischen Datenreferenzvariablen allgemeiner als der Datentyp des erzeugten Datenobjekts oder mit diesem identisch sein.

Wenn bei der Erzeugung des Datenobjekts eine behandelbare Ausnahme auftritt, wird das Objekt nicht erzeugt und die Datenreferenzvariable dref behält ihren vorherigen Zustand.

Hinweise

  • Im Gegensatz zur Anweisung DATA erzeugt CREATE DATA das Datenobjekt zum Zeitpunkt der Ausführung. Mit DATA deklarierte Datenobjekte werden beim Laden der zugehörigen Programmeinheit erzeugt.
  • Die Anweisung CREATE DATA erzeugt eine Heap-Referenz. Alle Referenzen, die auf das anonyme Datenobjekt oder seine Teile zeigen sind ebenfalls Heap-Referenzen und halten das Datenobjekt am Leben. Das gleiche gilt für Feldsymbole.
  • Anders als bei CREATE OBJECT wird bei CREATE DATA der Rückgabewert sy-subrc nicht gesetzt.

Ausnahmen

Behandelbare Ausnahmen

CX_SY_CREATE_DATA_ERROR

  • Ursache: Unzulässiger Wert für den Zusatz DECIMALS.
    Laufzeitfehler: CREATE_DATA_ILLEGAL_DECIMALS
  • Ursache: Unzulässiger Wert für den Zusatz INITIAL SIZE.
    Laufzeitfehler: CREATE_DATA_ILLEGAL_INIT_SIZE
  • Ursache: Unzulässiger Wert für den Zusatz LENGTH.
    Laufzeitfehler: CREATE_DATA_ILLEGAL_LENGTH
  • Ursache: Der Zusatz LENGTH wurde für einen Typ ungleich c, n, x oder p verwendet.
    Laufzeitfehler: CREATE_DATA_LEN_NOT_ALLOWED
  • Ursache: Der im Zusatz TYPE dynamisch angegebene Typ ist nicht vollständig typisiert.
    Laufzeitfehler: CREATE_DATA_NOT_ALLOWED_TYPE
  • Ursache: Der im Zusatz TYPE dynamisch angegebene Typ ist unbekannt.
    Laufzeitfehler: CREATE_DATA_UNKNOWN_TYPE

Unbehandelbare Ausnahmen

  • Ursache: Die Variable dref hat nicht den richtigen Typ.
    Laufzeitfehler: CREATE_DATA_REFERENCE_EXPECTED






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

Length: 10260 Date: 20240426 Time: 064434     sap01-206 ( 111 ms )