Konstruktorausdruck COND: Variable füllen in Abhängigkeit Bedingung

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Neues ABAP (ab Release 7.40).

Siehe Kategorie: Konstruktorausdruck.

Siehe Kategorie:Neues ABAP.

Siehe Konstruktorausdruck SWITCH.

Mit ABAP-Release 7.40 SP02 wurden neue Konstrukturausdrücke eingeführt, u. a. die Konstruktorausdrücke COND und SWITCH.

Die Beziehung zwischen den Konstruktorausdrücken COND und SWITCH ist wie zwischen IF und CASE im klassischen ABAP. Jeder Konstruktorausdruck SWITCH lässt sich auch in einen Konstruktorausdruck COND umschreiben, genauso wie jede CASE-Abfrage auch in eine IF-Abfrage umgeschrieben werden kann. Aber genau aufgrund dieser Beschränkung verwendet man dann einen SWITCH-Kontrollausdruck, bzw. eine CASE-Abfrage, da sie aufgrund der beschränkten Funktionalität leichter zu lesen ist.

Mit Konstrukturausdrücken spart man oft Hilfsvariablen und kann in einem Ausdruck Logik implementieren, wo man vorher mehrere Befehle schreiben musste.

Coding

Ist die Zielvariable bereits deklariert, kann die Angabe des Datentyps durch "#" ersetzt werden.

lv_ziel = COND <datentyp>|#(
                WHEN <bedingung1>
                  THEN ..
                WHEN <bedingung2>
                  THEN ..
                ELSE .. ).

Beim ELSE-Zweig ist kein "THEN" mehr nötig.

Beispiel

DATA: lt_spfli TYPE TABLE OF spfli.
DATA: ls_spfli TYPE spfli.
DATA: lv_string TYPE string.

SELECT * FROM spfli INTO TABLE lt_spfli.

LOOP AT lt_spfli INTO ls_spfli.

lv_string = 'Flight from: ' && COND string( WHEN ls_spfli-countryfr = 'US' 
                                               THEN 'United States'
                                            WHEN ls_spfli-countryfr = 'IT' 
                                               THEN 'Italy'
                                            ELSE ls_spfli-countryfr ).
WRITE: / lv_string.

ENDLOOP.

Weblinks

Literatur