lundi 7 mars 2016

Travailler avec les champs des flux de processus d'entreprise

Les flux des processus d'entreprise (ou Business Process Flow en anglais) permettent de définir un ensemble de phases et d'étapes qui sont ensuite affichées dans un contrôle en haut du formulaire. Chaque phase contient un groupe d'étapes. Chaque étape représente un champ dans lequel les données peuvent être entrées.
Source : TechNet

Dans cet article je n'aborderai pas comment configurer ces flux (vous pouvez retrouver la documentation en suivant ce lien) mais comment gérer les champs (ou étape dans la terminologie MS) contenus dans chaque phase.

Comment travailler sur les attributs ?

Rien de plus simple, en Javascript il suffit d'utiliser la fonction suivante pour récupérer l'attribut :
Xrm.Page.getAttribute("{fieldname}"); // Remplacer {fieldname} par le nom logique du champ

Le champ n'a pas besoin d'être présent sur le formulaire pour pouvoir être modifié.
Une fois récupéré toutes les méthodes de l'API JavaScript relatives aux attributs sont accessibles, dont la méthode setValue().

Comment travailler sur les contrôles ?

Cette fois-ci c'est un peu plus compliqué mais rien de bien sorcier, il y a deux manière d'y arriver.
Tout d'abord en JavaScript, il suffit de préfixer le nom logique du champ par header_process_ :
Xrm.Page.getControl("header_process_{fieldname}"); // Remplacer {fieldname} par le nom logique du champ

Comme pour les attributs, le champ n'a pas besoin d'être présent sur le formulaire.
Une fois récupéré toutes les méthodes de l'API JavaScript relatives aux contrôles sont accessibles.
NB : Étant documentée cette méthode est supporté par Microsoft.

Deuxième solution : utiliser les règles métiers.
Cette solution permet d'éviter le code JavaScript mais est limitée au verrouillage et à l'affichage des champs.

Source : TechNet