Beispiel zu Datenreferenzen 

REPORT demo_data_reference.

TYPES: BEGIN OF t_struct,
         col1 TYPE i,
         col2 TYPE i,
       END OF t_struct.

DATA: dref1 TYPE REF TO data,
      dref2 TYPE REF TO data.

FIELD-SYMBOLS: <fs1> TYPE t_struct,
               <fs2> TYPE i.

CREATE DATA dref1 TYPE t_struct.

ASSIGN dref1->* TO <fs1>.

<fs1>-col1 = 1.
<fs1>-col2 = 2.

dref2 = dref1.

ASSIGN dref2->* TO <fs2> CASTING.
WRITE / <fs2>.

GET REFERENCE OF <fs1>-col2 INTO dref2.

ASSIGN dref2->* TO <fs2>.
WRITE / <fs2>.

Die Listenausgabe ist:

      1

      2

In diesem Beispiel werden zwei Datenreferenzvariable dref1 und dref2 deklariert. Mit dref1 wird ein strukturiertes dynamisches Datenobjekt erzeugt. Diesem werden nach der Dereferenzierung mit dem Feldsymbol <fs1> Werte zugewiesen. Nach der Zuweisung von dref1 an dref2 zeigt auch dref2 auf das strukturierte Datenobjekt. Bei der Dereferenzierung von dref2 wird ein Cast auf den elementaren Typ i des Feldsymbols <fs2> durchgeführt. Dadurch wird seine erste Komponente dem Feldsymbol zugewiesen. Dann wird mit GET REFERENCE eine Referenz auf die zweite Komponente des strukturierten Datenobjekts in dref2 gestellt und ohne Casting dereferenziert.