SWITCH – Operador condicional
Como a própria tradução já diz, SWITCH quer dizer, mudar, trocar… ou seja esse operador deve ser utilizado para substituir um valor por outro. Além disso ele substitui o IF… ELSEIF e o CASE, é bem fácil de usa-lo… vejamos.
Abaixo fiz um exemplo simples para concatenar na descrição do material o idioma da tradução.
SELECT *
INTO TABLE @DATA(lt_makt)
FROM makt
WHERE matnr EQ ‘000000000000100100’.
LOOP AT lt_makt ASSIGNING FIELD–SYMBOL(<fs_makt>).
<fs_makt>–maktx = |{ <fs_makt>–maktx } – { SWITCH maktx( <fs_makt>–spras
WHEN ‘S’ THEN ‘Espanhol’
WHEN ‘P’ THEN ‘Português’
WHEN ‘E’ THEN ‘Inglês’
ELSE ‘Idioma desconhecido’ ) }|.
WRITE: / <fs_makt>–maktx.
ENDLOOP.
[popup_trigger id=”718″ tag=”span”][/popup_trigger]
Fiz um comparativo de desempenho utilizando IF… ELSEIF e o CASE, não tivemos diferenças significativas (como no READ TABLE) que justifiquem a utilização do SWITCH, porém, este pode ser utilizado com InLine o que na minha opinião é a melhor justificativa.
Pontos importantes
Para considerar quando utilizar o SWITCH:
- Você pode determinar o valor retornado manualmente ou deixar que o compilador determine automaticamente usando #;
- Deve haver pelo menos um WHEN; “Esse comentário não faz muito sentido mas achei que deveria colocar aqui rsrsr
- Você pode utilizar variáveis temporárias depois do THEN;
É isso ai, para um tema simples, um post simples… abraços.
LNUNES