Objectif : contrôles métier à la sauvegarde.
Voir explication
✅ Les validations dans SAP RAP
🔹 Rôle des validations
Les validations permettent de contrôler la cohérence des données avant
qu’un objet métier ne soit enregistré ou activé.
Elles sont utilisées pour bloquer une action lorsque une règle métier
n’est pas respectée (champ obligatoire, valeur incohérente, règle
fonctionnelle violée).
En cas d’erreur, l’utilisateur reçoit un message bloquant, et l’instance
reste en mode draft.
📐 Place des validations dans l’architecture RAP
Les validations font partie intégrante du Behavior Definition (BDEF) et sont
exécutées :
- lors de la création,
- lors de la modification,
- et surtout avant l’activation du draft.
Elles s’insèrent donc juste avant le passage de l’état draft à
l’état actif, garantissant que seules des données valides soient persistées.
🗂️ Où définir les validations
1️⃣ Behavior Definition (BDEF)
Les validations sont déclarées dans la Behavior Definition :
validation check_quantity on save { field quantity; }
on save : la validation est exécutée à l’enregistrement / activation
field quantity : champ concerné par la règle
2️⃣ Behavior Implementation (classe ZBP_*)
La logique métier de la validation est implémentée dans la classe de comportement :
METHOD check_quantity.
IF quantity <= 0.
APPEND VALUE #( %msg = new_message(
id = 'ZMSG'
number = '001'
severity = if_abap_behv_message=>severity-error
v1 = 'Quantity must be greater than zero'
) ) TO reported.
ENDIF.
ENDMETHOD. 🔄 Exemple concret (cas Coffee Subscription)
Lors de la création d’un abonnement :
- la quantité doit être strictement positive,
- la fréquence ne doit pas être initiale,
- le type de café doit être renseigné.
Si une de ces règles n’est pas respectée :
- l’enregistrement est bloqué,
- un message d’erreur est affiché dans l’UI,
- le draft est conservé pour correction.
⚠️ Points d’attention importants
Lors de l’implémentation des validations, il faut faire attention à :
- utiliser des messages bloquants (severity-error) uniquement lorsque nécessaire,
- cibler précisément les champs concernés,
- éviter les validations trop lourdes (performance),
- ne pas dupliquer la logique entre validation et détermination.
Une validation mal conçue peut :
- bloquer inutilement l’utilisateur,
- dégrader l’expérience Fiori,
- ou compliquer l’évolution du code.
🔁 Comparaison avec l’ABAP classique
En ABAP classique, les validations sont souvent implémentées :
- dans des CHECK dispersés,
- ou dans la logique PAI des écrans.
En RAP, les validations sont :
- centralisées,
- déclaratives,
- et exécutées automatiquement par le framework.
Cela améliore la maintenabilité, la lisibilité et la robustesse du code.
🎯 Pourquoi les validations sont essentielles
Les validations garantissent que :
- seules des données cohérentes atteignent la base,
- les règles métier sont appliquées de manière uniforme,
- l’application se comporte comme un standard SAP.
Leur bonne utilisation est un marqueur fort de qualité et de maturité RAP.