SAP ABAP - Déclaration de contrôle de cas

L'instruction de contrôle CASE est utilisée lorsque vous devez comparer deux champs ou plus.

La syntaxe de l'instruction de contrôle CASE est la suivante -

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

Les règles suivantes s'appliquent à une instruction CASE -

  • Aucune expression logique ne peut être utilisée pour le champ <field>.

  • Les chaînes de champ utilisées dans l'instruction CASE sont traitées comme des variables de type C.

  • Le bloc d'instructions suivant une clause WHEN est exécuté si le contenu des champs affichés dans le <field> est similaire à l'un des champs <abc>, <def>, <ghi> jusqu'à <xyz>.

  • Après avoir exécuté toutes les conditions spécifiées dans l'instruction WHEN, le programme continue de traiter les instructions restantes après l'instruction ENDCASE.

  • La clause WHEN OTHERS est exécutée dans un programme lorsque la valeur de <field> ne correspond à aucune valeur spécifiée dans les champs <abc> jusqu'à <xyz> de la clause WHEN.

  • Si la clause WHEN OTHERS est omise et que la valeur de <field> ne correspond à aucune valeur spécifiée dans les champs <abc> jusqu'à <xyz> de la clause WHEN, le programme continue de traiter les instructions restantes après l'instruction ENDCASE .

Représentation schématique

Exemple

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.

Le code ci-dessus produit la sortie suivante -

Yes, this is the title.