ABAP Dynamic Programming Data references


Example

Essential for data references is the addition REF TO after TYPE.

Dynamic Creation of Structures

If the type of a structure should be decided on runtime, we can define our target structure as reference to the generic type data.

DATA wa TYPE REF TO data.

To give wa a type we use the statement CREATE DATA. The addition TYPE can be specified by:

Reference:

CREATE DATA wa TYPE kna1

  • Static checks are active so it's not possible to create an unknown type

Name:

CREATE DATA wa TYPE (lw_name_as_string)

  • The parentheses are needed and lw_name_as_string contains the types name as string.
  • If the type was not found, an exception of type CX_SY_CREATE_DATA_ERROR will be thrown

For instancing dynamically created types the HANDLE addition can be specified. HANDLE receives an object which inherits from CL_ABAP_DATADESCR.

CREATE DATA dref TYPE HANDLE obj

  • obj can be created using the RunTime Type Services
  • because dref is still a datareference, it has to be dereferenced (->*) to be used as datacontainer (normally done via Field-Symbols)