[ABAP] Interne Tabellen: OPTIONAL – Leere Datensätze 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 -> leeren Datensatz zurückgeben
DATA(lv_p) = VALUE #( it_persons[ name = 'Heiner' ] OPTIONAL ).

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

* Datensatz mit Index 4 ist nicht vorhanden -> leeren Wert zurückgeben
DATA(lv_age) = VALUE #( it_persons[ 4 ]-age OPTIONAL ).

WRITE: / lv_age.