[ABAP] Interne Tabellen: DEFAULT VALUE bei Table Expressions

TYPES: BEGIN OF ty_person,
         name TYPE string,
         age  TYPE i,
       END OF ty_person.

TYPES: ty_it_persons TYPE STANDARD TABLE OF ty_person WITH DEFAULT KEY.

DATA(it_persons) = VALUE ty_it_persons(
                                        ( name = 'Hugo' age = 40 )
                                        ( name = 'Ede' age = 65 )
                                        ( name = 'Ina' age = 35 )
                                      ).

* Datensatz für Person 'Heiner' ist nicht vorhanden -> Default Datensatz <empty> zurückgeben
DATA(lv_p) = VALUE #( it_persons[ name = 'Heiner' ] DEFAULT VALUE #( name = '<empty>' age = -1 ) ).

WRITE: / lv_p-name.
WRITE: / lv_p-age.

* Datensatz mit Index 5 ist nicht vorhanden -> Default Datensatz <empty> zurückgeben
DATA(lv_i) = VALUE #( it_persons[ 5 ] DEFAULT VALUE #( name = '<empty>' age = -1 ) ).

WRITE: / lv_i-name.
WRITE: / lv_i-age.

* Datensatz mit Index 4 ist nicht vorhanden -> Default Wert für age (-1) zurückgeben
DATA(lv_age) = VALUE #( it_persons[ 4 ]-age DEFAULT -1 ).

WRITE: / lv_age.