ABAP Keyword Documentation → ABAP − Reference → Creating Objects and Values → CREATE DATA → CREATE DATA - HANDLE
Creating a Structure Using RTTC
This example demonstrates how a structure is created using RTTC.
Other versions: 7.31 | 7.40 | 7.54
Source Code
DATA: struct_type TYPE REF TO cl_abap_structdescr,
dref TYPE REF TO data,
oref TYPE REF TO cx_sy_struct_creation.
DATA column1 TYPE c LENGTH 30.
DATA column2 TYPE c LENGTH 30.
FIELD-SYMBOLS: <struc> TYPE any,
<comp1> TYPE any,
<comp2> TYPE any.
cl_demo_input=>add_field( CHANGING field = column1 ).
cl_demo_input=>add_field( CHANGING field = column2 ).
cl_demo_input=>request( ).
column1 = to_upper( column1 ).
column2 = to_upper( column2 ).
TRY.
struct_type = cl_abap_structdescr=>get(
VALUE #(
( name = column1 type = cl_abap_elemdescr=>get_c( 40 ) )
( name = column2 type = cl_abap_elemdescr=>get_i( ) )
)
).
CREATE DATA dref TYPE HANDLE struct_type.
CATCH cx_sy_struct_creation INTO oref.
cl_demo_output=>display( oref->get_text( ) ).
RETURN.
ENDTRY.
ASSIGN dref->* TO <struc>.
ASSIGN COMPONENT column1 OF STRUCTURE <struc> TO <comp1>.
<comp1> = 'Amount'.
ASSIGN dref->* TO <struc>.
ASSIGN COMPONENT column2 OF STRUCTURE <struc> TO <comp2>.
<comp2> = 11.
cl_demo_output=>display( |{ column1 WIDTH = 32 } { <comp1> }\n| &
|{ column2 WIDTH = 32 } { <comp2> }| ).
Description
Dynamic definition of a structure with two components using the GET method of the CL_ABAP_STRUCTDESCR
class. The description of the components of the structure is provided in the internal table comp_tab
.
If no type description object exists for this structure yet, it is created by the GET method.
The method CHECK_TABLE_NAME_STR of the class CL_ABAP_DYN_PRG checks whether the database table specified exists and can be used.