!--a11y-->


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>.
出力は次のようになります。
1
2
この例では、dref1 と dref2 というデータ参照変数が宣言されています。dref1 は構造化された動的データオブジェクトの登録に使用されます。このオブジェクトは、フィールドシンボル <fs1> で参照解除され、その値はフィールドシンボル <fs1> に割り当てられます。dref1 は dref2 に割り当てられます。dref2 は構造化データオブジェクトを指します。dref2 は 参照が解除されると、フィールドシンボル <fs2> の基本データ型 i にキャストされます。1 つ目のコンポーネントは、フィールドシンボルに割り当てられます。次に、GET REFERENCE により dref2 の構造化データオブジェクトではない 2 つ目のコンポーネントに参照づけが行われます。これは、キャストせずに参照解除することができます。
