[ABAP] Bedingungen abfragen – SWITCH

* ersetzt CASE
* Beispiel 1
DATA: lv_flag TYPE boolean VALUE abap_false.
* Abfrage von lv_flag, Rückgabe von String
DATA(lv_status) = SWITCH string( lv_flag WHEN abap_true THEN 'Wahr.' ELSE 'Falsch.' ).
WRITE: lv_status.

* Beispiel 2
DATA(lv_lang) = SWITCH string( sy-langu WHEN 'D' THEN 'DE'
                                        WHEN 'E' THEN 'EN'
                                        ELSE 'XX' ).

WRITE: / lv_lang.

[ABAP] Interne Tabelle vorbelegen / VALUE als Wertoperator

TYPES: BEGIN OF s_bestand,
         isbn     TYPE n LENGTH 10,
         titel    TYPE string,
         bestand  TYPE i,
         autor    TYPE n,
       END OF s_bestand.

TYPES: t_bestand TYPE STANDARD TABLE OF s_bestand WITH DEFAULT KEY. " KEY-Angabe zwingend notwendig

* iTab mit Werten füllen
DATA(it_bestand) = VALUE t_bestand( ( isbn = '1234567823' titel = 'Titel1' bestand = 1 autor = 'Horst' )
                                    ( isbn = '3233423434' titel = 'Titel2' bestand = 2 autor = 'Udo' ) ).

* oder

DO 5 TIMES.
  DATA(l_wa) = VALUE s_bestand( isbn = '1234567823' titel = 'Titel1' bestand = 1 autor = 'Horst' ).
  APPEND l_wa TO it_bestand.
ENDDO.

* Testausgabe
LOOP AT it_bestand INTO DATA(wa_bestand).
  WRITE: / | { wa_bestand-isbn } \| { wa_bestand-titel } \| { wa_bestand-bestand } \| { wa_bestand-autor } |.
ENDLOOP.

weiterführende Info: Link