[ABAP] RTTS / RTTI: Beispiele für dynamische Typ- und Objekterzeugung

* dynamisch einen Typ char40 erzeugen
DATA(o_type_char40) = cl_abap_elemdescr=>get_c( 40 ).
* dynamisch einen Typ string erzeugen
DATA(o_type_string) = cl_abap_elemdescr=>get_string( ).
* dynamisch einen Typ i erzeugen
DATA(o_type_int) = cl_abap_elemdescr=>get_i( ).
* dynamisch einen Typ decfloat34 erzeugen
DATA(o_type_d34) = cl_abap_elemdescr=>get_decfloat34( ).

* Referenz auf Objekt vom Typ char40 erzeugen
DATA: o_ref_char40 TYPE REF TO data.
CREATE DATA o_ref_char40 TYPE HANDLE o_type_char40.

* Referenz auf Objekt vom Typ string erzeugen
DATA: o_ref_string TYPE REF TO data.
CREATE DATA o_ref_string TYPE HANDLE o_type_string.

* Referenz auf Objekt vom Typ i erzeugen
DATA: o_ref_int TYPE REF TO data.
CREATE DATA o_ref_int TYPE HANDLE o_type_int.

* Referenz auf Objekt vom Typ i erzeugen
DATA: o_ref_d34 TYPE REF TO data.
CREATE DATA o_ref_d34 TYPE HANDLE o_type_d34.

* Referenz einem Feldsymbol zuweisen
ASSIGN o_ref_char40->* TO FIELD-SYMBOL(<char40>).
ASSIGN o_ref_string->* TO FIELD-SYMBOL(<string>).
ASSIGN o_ref_int->* TO FIELD-SYMBOL(<int>).
ASSIGN o_ref_d34->* TO FIELD-SYMBOL(<d34>).

* Wert auf Feldsymbol schreiben
<char40> = 'char40'.
<string> = 'string'.
<int> = 1.
<d34> = '3.1415926535'.

WRITE: / <char40>.
WRITE: / <string>.
WRITE: / <int>.
WRITE: / <d34>.