SWITCH: Unterschied zwischen den Versionen

Aus SAP Wiki ツ
 
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Schlüsselbegriffe]]
[[Kategorie:Schlüsselbegriffe]]
[[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.
<br/><br />
 
<br/><br />
=== 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

Erklärungsvideo

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.