adesso orange🍊Stellenangebote:
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP
(Senior) Consultant Technologie · Consultant ABAP
Werkstudent Softwareentwicklung · Fiori / UI5 · Consulting · Application Management
SWITCH: Unterschied zwischen den Versionen
Aus SAP Wiki ツ
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
[[Datei:Vid_zu_cond_switch.png|175px|thumb|right|Erklärungsvideo|link=https://m.youtube.com/watch?v=hxyudwzHCBo&t=6m13s]] | [[Datei:Vid_zu_cond_switch.png|175px|thumb|right|Erklärungsvideo|link=https://m.youtube.com/watch?v=hxyudwzHCBo&t=6m13s]] | ||
Seit ABAP 7.40 kann man SWITCH verwenden. Von der Syntax ist dieser wie [[COND]] nur mit dem Unterschied, dass auf Gleichheit geprüft wird und keine Bedingung wie bei COND möglich ist. | Seit ABAP 7.40 kann man SWITCH verwenden. Von der Syntax ist dieser wie [[COND]] nur mit dem Unterschied, dass auf Gleichheit geprüft wird und keine Bedingung wie bei COND möglich ist. | ||
=== Mit SWITCH === | === Mit SWITCH === | ||
<syntaxhighlight lang="abap" line start="1"> | |||
DATA(lv_lang) = SWITCH char02( sy-langu WHEN 'E' THEN 'EN' | DATA(lv_lang) = SWITCH char02( sy-langu WHEN 'E' THEN 'EN' | ||
WHEN 'D' THEN 'DE' | WHEN 'D' THEN 'DE' | ||
ELSE THROW zcx_... "optional | ELSE THROW zcx_... "optional | ||
). | ). | ||
</syntaxhighlight> | |||
Da "lv_lang" Inline deklariert wird, muss der Typ char02 angegeben werden. | Da "lv_lang" Inline deklariert wird, muss der Typ char02 angegeben werden. | ||
=== Mit CASE === | === Mit CASE === | ||
<syntaxhighlight lang="abap" line start="1"> | |||
DATA lv_lang TYPE char02. | DATA lv_lang TYPE char02. | ||
Zeile 25: | Zeile 24: | ||
RAISE EXCEPTION TYPE zcx_... . | RAISE EXCEPTION TYPE zcx_... . | ||
ENDCASE. | ENDCASE. | ||
</syntaxhighlight> |
Aktuelle Version vom 12. August 2021, 11:54 Uhr
Seit ABAP 7.40 kann man SWITCH verwenden. Von der Syntax ist dieser wie COND nur mit dem Unterschied, dass auf Gleichheit geprüft wird und keine Bedingung wie bei COND möglich ist.
Mit SWITCH
DATA(lv_lang) = SWITCH char02( sy-langu WHEN 'E' THEN 'EN'
WHEN 'D' THEN 'DE'
ELSE THROW zcx_... "optional
).
Da "lv_lang" Inline deklariert wird, muss der Typ char02 angegeben werden.
Mit CASE
DATA lv_lang TYPE char02.
CASE sy-langu.
WHEN 'E'.
lv_lang = 'EN'.
WHEN 'D'.
lv_lang = 'DE'.
WHEN OTHERS.
RAISE EXCEPTION TYPE zcx_... .
ENDCASE.