SAP ABAP - Declaração de Controle de Caso
A instrução de controle CASE é usada quando você precisa comparar dois ou mais campos.
A sintaxe para a instrução de controle CASE é a seguinte -
CASE <field>.
WHEN <abc>.
<statement block>.
WHEN <def>.
<tatement block>.
WHEN <pqr>.
<statement block>.
......
......
......
WHEN <xyz>.
<statement block>.
WHEN OTHERS.
<statement block>.
ENDCASE.
As seguintes regras se aplicam a uma instrução CASE -
Nenhuma expressão lógica pode ser usada para o campo <field>.
As cadeias de caracteres de campo usadas na instrução CASE são tratadas como variáveis do tipo C.
O bloco de instruções após uma cláusula WHEN é executado se o conteúdo dos campos mostrados no <campo> for semelhante a um dos campos <abc>, <def>, <ghi> até <xyz>.
Depois de executar todas as condições especificadas na instrução WHEN, o programa continua a processar as instruções restantes após a instrução ENDCASE.
A cláusula WHEN OTHERS é executada em um programa quando o valor de <field> não corresponde a nenhum valor especificado nos campos <abc> até <xyz> da cláusula WHEN.
Se a cláusula WHEN OTHERS for omitida e o valor do <field> não corresponder a nenhum valor especificado nos campos <abc> até <xyz> da cláusula WHEN, o programa continuará a processar as instruções restantes após a instrução ENDCASE .
Diagrama de fluxo
Exemplo
Report YH_SEP_15.
Data: Title_1(10) TYPE C,
Title_2(15) TYPE C.
Title_1 = 'ABAP'.
Title_2 = 'Programming'.
CASE Title_2.
WHEN 'ABAP'.
Write 'This is not the title'.
WHEN 'Tutorials'.
Write 'This is not the title'.
WHEN 'Limited'.
Write 'This is not the title'.
WHEN 'Programming'.
Write 'Yes, this is the title'.
WHEN OTHERS.
Write 'Sorry, Mismatch'.
ENDCASE.
O código acima produz a seguinte saída -
Yes, this is the title.