Advertising:
Switch(ABAP keyword): Difference between revisions
From SAP Knowledge Base
No edit summary |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Template:MetaDesc|An explanation of how the ABAP keyword SWITCH works using an example. An example with CASE is also shown to show the advantages of conditional operator SWITCH.}} | |||
[[category:keywords]] | [[category:keywords]] | ||
Since ABAP 7.40 you can use SWITCH. In terms of syntax, this is like [[COND]] with the only difference being that it checks for equality and no condition like COND is possible. | Since ABAP 7.40 you can use SWITCH. In terms of syntax, this is like [[COND]] with the only difference being that it checks for equality and no condition like COND is possible. | ||
== | == With SWITCH == | ||
<syntaxhighlight lang="abap" line start="1"> | <syntaxhighlight lang="abap" line start="1"> | ||
DATA(lang) = SWITCH char02( sy-langu WHEN 'E' THEN 'EN' | DATA(lang) = SWITCH char02( sy-langu WHEN 'E' THEN 'EN' | ||
Line 11: | Line 12: | ||
Since "lang" is declared inline, the type char02 must be specified. | Since "lang" is declared inline, the type char02 must be specified. | ||
== With CASE == | |||
<syntaxhighlight lang="abap" line start="1"> | <syntaxhighlight lang="abap" line start="1"> | ||
DATA lang TYPE char02. | DATA lang TYPE char02. |
Latest revision as of 17:03, 31 December 2024
Since ABAP 7.40 you can use SWITCH. In terms of syntax, this is like COND with the only difference being that it checks for equality and no condition like COND is possible.
With SWITCH
DATA(lang) = SWITCH char02( sy-langu WHEN 'E' THEN 'EN'
WHEN 'D' THEN 'DE'
ELSE THROW cx_... "optional
).
Since "lang" is declared inline, the type char02 must be specified.
With CASE
DATA lang TYPE char02.
CASE sy-langu.
WHEN 'E'.
lang = 'EN'.
WHEN 'D'.
lang = 'DE'.
WHEN OTHERS.
RAISE EXCEPTION TYPE cx_... .
ENDCASE.