Le case
prend de chaque côté des opérandes quelconques, il n'y a pas de contraintes positionnelles.
Par exemple on peut tout à fait écrire :
PARAMETERS : p_a RADIOBUTTON GROUP choi, p_b RADIOBUTTON GROUP choi. CASE 'X'. WHEN p_a. .. WHEN p_b. .. ENDCASE.
Les CASE
et WHEN
peuvent même recevoir des méthodes fonctionnelles et des fonctions abap prédéfinies.
La méthode la plus simple pour formater une clause where dynamique :
DATA wlv_where_typo TYPE string. DATA wlt_where_typo TYPE TABLE OF string. APPEND 'm~matkl LIKE wlv_matkl' TO wlt_where_typo. APPEND 'm~saiso = iv_saiso' TO wlt_where_typo. CONCATENATE LINES OF wlt_where_typo INTO wlv_where_typo SEPARATED BY ' AND '.