SAP ABAP - Istruzione Case Control

L'istruzione di controllo CASE viene utilizzata quando è necessario confrontare due o più campi.

La sintassi per l'istruzione di controllo CASE è la seguente:

CASE <field>. 
 
WHEN <abc>. 
   <statement block>.
   
WHEN <def>. 
   <tatement block>.
   
WHEN <pqr>. 
   <statement block>. 
...... 
...... 
......  
WHEN <xyz>. 
   <statement block>. 
  
WHEN OTHERS. 
   <statement block>.  
ENDCASE.

Le seguenti regole si applicano a un'istruzione CASE:

  • Non è possibile utilizzare espressioni logiche per il campo <field>.

  • Le stringhe di campo utilizzate nell'istruzione CASE vengono trattate come variabili di tipo C.

  • Il blocco di istruzioni che segue una clausola WHEN viene eseguito se il contenuto dei campi mostrati in <field> è simile a uno dei campi <abc>, <def>, <ghi> fino a <xyz>.

  • Dopo aver eseguito tutte le condizioni specificate nell'istruzione WHEN, il programma continua a elaborare le istruzioni rimanenti dopo l'istruzione ENDCASE.

  • La clausola WHEN OTHERS viene eseguita in un programma quando il valore di <field> non corrisponde a nessun valore specificato nei campi <abc> fino a <xyz> della clausola WHEN.

  • Se la clausola WHEN OTHERS viene omessa e il valore di <field> non corrisponde a nessun valore specificato nei campi <abc> fino a <xyz> della clausola WHEN, il programma continua a elaborare le istruzioni rimanenti dopo l'istruzione ENDCASE .

Diagramma di flusso

Esempio

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.

Il codice precedente produce il seguente output:

Yes, this is the title.