SAP CREATE DATA ABAP Statements

Get Example source ABAP code based on a different SAP table
  


Standard SAP Help for CREATE_DATA

CREATE DATA

Short Reference
• CREATE DATA ABAP Statement
• TYPE CREATE DATA


ABAP Syntax

Defining the data type implicitly

1 CREATE DATA dref [area_handle ].

Defining the data type using predefined ABAP types

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

Defining the data type using an existing type

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

Creating data with reference to a type description object

4 CREATE DATA dref [area_handle ]
TYPE HANDLE handle.

Creating reference variables

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

Creating internal tables

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].

What does it do? The CREATE DATA statement creates an anonymous data object and assigns the reference to the data object of the dref reference variables.

By default, the data object is created in the internal session ( heap) of the current program and remains there for as long as it is required. If no data references and no field symbols point to the data object or to a part of the data objects, it is deleted by Garbage Collector. The data object can be created as a shared object using the addition area_handle.

The reference variable dref must be declared as a data reference variable. The content of a data object that is created with CREATE DATA can only be accessed using dereferenced data variables or field symbols (see Data objects in operand positions).

The data type of the data object that is created can be defined using the TYPE addition and a type specification or with the LIKE addition and the specification of a data object. The syntax permits the dynamic definition of elementary data types, reference types, and table types. The HANDLE addition can reference any RTTS type description objects. According to the rules in section Assignments Between Data Reference Variables, the static type of the data reference variables has to be more general than the data type of the data object created, or be identical with it.

If a handleable exception is raised when the object is being created, the object is not created and the dref data reference variable retains its previous state.

Latest notes:Unlike the DATA statement, CREATE DATA creates the data object at execution time. DATA creates declared data objects when the corresponding program unit is loaded. The statement CREATE DATA creates a heap reference. All references that point to the anonymous data object or its parts are also heap references and keep the data object alive. The same applies to field symbols. When a data type is used, the instance operator NEW acts like the statement CREATE DATA dref TYPE type and can be used in general expression positions. Unlike CREATE OBJECT, CREATE DATA does not set the return code sy-subrc.



Runtime Exceptions

Catchable Exceptions
CX_SY_CREATE_DATA_ERROR
Reason for error:
Illegal value for the DECIMALS addition.
Runtime error:
CREATE_DATA_ILLEGAL_DECIMALS
Reason for error:
Illegal value for the INITIAL SIZE addition.
Runtime error:
CREATE_DATA_ILLEGAL_INIT_SIZE
Reason for error:
Illegal value for the LENGTH addition.
Runtime error:
CREATE_DATA_ILLEGAL_LENGTH
Reason for error:
The LENGTH addition was used for a type other than c, n, x, or p.
Runtime error:
CREATE_DATA_LEN_NOT_ALLOWED
Reason for error:
The type specified dynamically in TYPE is not typed completely.
Runtime error:
CREATE_DATA_NOT_ALLOWED_TYPE
Reason for error:
The type dynamically specified in the TYPE addition is not known.
Runtime error:
CREATE_DATA_UNKNOWN_TYPE


Non-catchable Exceptions
Reason for error:
The dref variable does not have the correct type.
Runtime error:
CREATE_DATA_REFERENCE_EXPECTED

Return to menu