lundi 21 août 2017

#Tip30 Dynamics 365 : Mettre à jour des enregistrement enfants à partir d'un enregistrement parent avec un processus

Via un workflow classique, il est très simple de mettre à jour l’enregistrement parent de l’enregistrement ciblé par le processus, l’action du processus est standard.
En revanche, il est impossible en standard de mettre à jour des enregistrements fils en masse depuis le parent.
L’objectif  de cet article est d’expliquer comment mettre en place, dans un processus, la mise à jour en masse d’une valeur sur tous les enregistrements fils d’un enregistrement.

Pour réaliser ce processus, il faut en prérequis :
  • Importer la solution CRM 2011/2015 Distribute Workflow Activity  qui se télécharge sur Codeplex : http://crm2011distributewf.codeplex.com/ (Suivre les instructions pour déployer la solution)
  • Avoir deux entités liées avec la relation 1:N
  • Avoir un workflow déclenché à la main avec la mise à jour des champs cibles sur l’entité Enfant
Dans l’exemple ci-dessous, une valeur (Pays) se trouvant sur l’entité Contact va être mise à jour en fonction d’une modification sur l’entité parente Compte.
Attention : Avec cette méthode l’ensemble des contacts liés au Compte sont modifiés !
Le processus va exécuter l’action suivante : Si le champ Pays de l’entité Compte est modifié alors tous pays des contacts sont mis à jour avec la nouvelle valeur.

Création des processus :
  • Processus concernant l’entité Contact : Mise à jour du champ en fonction de la valeur sur Compte
image

Note : Il faut que le processus soit à la demande pour que cela fonctionne correctement.
  • Processus concernant l’entité Compte : Déclenchement du workflow contact sur tous les enregistrements fils

image

Mise en place du déclencheur (Modification du champ Pays de l’entité Compte) :

image


Ajouter l’étape de Workflow Distribute to Many


image

image

Cliquer sur Propriété
Il faut ajouter le workflow agissant sur l’entité Contact et le nom de la relation entre Compte et Contact :


image

Sauvegarder et cliquer sur Activer.
Une fois les processus activés, à chaque modification du pays sur un compte, tous le champs Pays des contacts associés seront mis à jour automatiquement.

Exemple : Sur cette fiche Contact, le champ Pays est vide :


image



Sur la fiche du compte parent, je mets à jour le champ Pays :
image


Ouvrir la fiche d’un des contacts, le pays est maintenant à jour :

image


Dans les sessions de traitement du workflow concernant le compte, on voit bien l’appel de l’activité de workflow que nous avons configuré :

image

Avec ces processus et activités de workflow incrustées, les possibilités de mise à jour des enregistrements enfants se multiplient.