Dynamics 365 – Gérer les champs dans les formulaires, entête et BPF en JavaScript
Formulaire, Header et Business Process Flow
Dans Microsoft Dynamics 365, un même champ peut être affiché à plusieurs endroits :
dans le corps du formulaire
dans le header
dans le Business Process Flow (BPF)
👉 Côté métier, l’attente est simple :
“Si le champ devient obligatoire ou masqué, ça doit être cohérent partout.”
👉 Côté technique, la réalité est plus subtile.
Et mal la comprendre conduit à des incohérences UI et des tickets inutiles.
🎯 Cas concret
Champ Dataverse : p365_age
Il est affiché :
dans le body du formulaire
dans le header
dans le BPF
Objectif :
masquer / afficher le champ
le rendre obligatoire ou non
avec un comportement prévisible et maîtrisé
🧠 Principe fondamental
La visibilité est une propriété du contrôle.
L’obligation est une propriété de l’attribut.
🧩 Noms réels des contrôles Dynamics
Pour le champ logique p365_age :
Emplacement : Formulaire —> p365_age
Emplacement : Header—> header_p365_age
Emplacement : Formulaire —> header_process_p365_age
⚠️ Ces noms sont générés par Dynamics.
🔹 1. Gérer la visibilité (setVisible)
Règle clé
👉 La visibilité se gère au niveau des contrôles
🔹 2. Gérer le caractère obligatoire (setRequiredLevel)
Règle clé
👉 L’obligation est portée par l’attribut, pas par le contrôle
🧪 Cas spécifiques à anticiper
🔹 Le BPF n’est pas chargé
header_process_p365_age peut être null
🔹 Étape BPF inactive
🔹 Exécution trop tôt (OnLoad)
🔹 Utiliser le même Javascript pour un formulaire qui ne possède pas de BPF
Attention dans la réutilisation de vos formulaires.
Un Javascript qui gère l’affiche d’une segmentation dans un BPF sur une opportunité, alors que le BPF n’existe pas dans un formulaire compte vous posera des problèmes.