Développeurs d’entreprise, vous utilisez Power Automate pour automatiser les processus d’affaires de votre organisation? Et vous développez des flux (flows) à l’aide du connecteur Common Data Service (environnement actuel)? Alors, vous avez sûrement déjà eu besoin d’information sur le contexte dans lequel le flux a été déclenché. Voici comment les obtenir. 

Quand vous générez des flux dans l’environnement Power Automate via le connecteur Dataverse (environnement actuel), certaines informations sont très pratiques. En effet, si vous pouvez accéder aux données sur le contexte de déclenchement d’un flux, vous pourrez les réutiliser dans la logique d’affaires de votre flux.  

Par exemple, voici quelques cas où ce sera utile :

  • Vous devez connaître l’utilisateur de l’environnement Dataverse qui exécute le flux; 
  • Vous devez savoir quelle action a déclenché le flux pour appliquer une logique conditionnelle (ex. créer, mettre à jour, supprimer). 

Dans cet article, nous verrons trois méthodes pour :

  • Extraire le contexte de déclenchement;
  • Utiliser l’information dans la logique du système d’un flux.

 

D’abord, examinons la sortie du déclencheur 

Passons maintenant en revue les journaux des exécutions d’un flux se déclenchant sur un événement du connecteur Common Data Service (environnement actuel). 

En ouvrant le journal d’exécution du flux, vous pouvez examiner le résultat de la première action, soit le déclencheur. 

Remarquez les dernières propriétés du corps de la sortie (celles qui commencent par une lettre majuscule). Ces propriétés se trouvent toujours dans la sortie du déclencheur, peu importe quelle table et quel message déclenchent le flux. 

Toutefois, dans notre exemple, ces propriétés ne sont pas disponibles dans le contenu dynamique et elles n’apparaissent pas comme les autres propriétés de l’enregistrement du compte. 

Pour pouvoir utiliser ces valeurs, il faut trouver un moyen de les extraire. Mais comment? 

 

Extraire le contexte de déclenchement d’un flux : 3 méthodes simples

Voyons 3 méthodes simples qui vous permettront d’extraire et de consommer les valeurs de contexte. 

1. Requête directe dans le triggerBody()

Dans l’onglet Expression, tapez cette ligne de code : 

triggerBody()[‘{nomdelapropriété}’] 

Vous pourrez ainsi extraire une seule propriété. Dans le cas illustré plus haut, il s’agit de RunAsSystemUserId. Il s’agit d’une façon simple et rapide d’obtenir la valeur, mais il faut toutefois y aller une à la fois. 

2. Analyse du code JSON du triggerBody()

Cette méthode est particulièrement intéressante : elle s’effectue en une seule étape, mais encore mieux, elle vous permet d’utiliser toutes les propriétés extraites directement dans l’onglet Contenu dynamiqueGardez en tête que vous payez en fonction du nombre d’actions du flux. Chaque tentative de réduction des actions peut donc vous profiter. 

Maintenant, allons-y… 

D’abord, il faut configurer une étape « analyse JSON » (Parse JSON) dans le flux. 

Comme contenu, sélectionnez la sortie triggerBody(). Pour insérer un échantillon JSON, il suffit ensuite de cliquer sur « générer à partir d’un échantillon » (Generate from sample). 

Pour obtenir l’échantillon, vous devez déclencher le flux et examiner le corps du déclencheur dans le journal d’exécution.

Maintenant, copiez la sortie JSON et retirez toutes les propriétés dont vous n’avez pas besoin pour ne garder que celles qui vous intéressent (dans notre cas, SdkMessage et RunAsSystemUserId). 

{ 

  “SdkMessage”: “Create”, 

  “RunAsSystemUserId”: “4d19b2fa-9128-4ab6-8fb4-a6ffbfbee798” 

} 

Pour terminer, collez le JSON simplifié pour générer automatiquement un schéma JSON. 

Les valeurs seront alors disponibles directement dans l’onglet Contenu dynamique, prêtes à l’emploi. C’est aussi simple que ça! 

3. Création d’un flux enfant (Child Flow)

Avec cette méthode, vous pourrez encapsuler la logique d’analyse JSON vue au point 2 dans un flux enfant réutilisable dans n’importe quel autre flux de votre système. 

Il s’agit d’une excellente option, car elle vous permet de réutiliser des fonctionnalités dans l’ensemble de votre organisation, mais surtout, parce qu’elle rend la programmation accessible à des personnes qui ne sont pas nécessairement familières avec l’analyse JSON et l’extraction de propriétés. 

Dans cet article, nous n’approfondirons pas le développement du Child Flow (gardons cela pour une autre publication). Mais en voici les principales étapes :

Création d’un nouveau flux (dans une solution)

1. Déclenchement manuel :

Vous devez définir un paramètre d’entrée, soit le TriggerBody.

2. Traitement

C’est exactement comme dans la deuxième méthode, soit l’analyse du code JSON

3. Réponse aux PowerApps

Vous devez d’abord définir les paramètres de sortie pour ensuite mettre en correspondance les deux sorties générées lors de l’étape de l’analyse JSON. 

Une fois que c’est fait, tout le monde peut facilement déposer le flux enfant dans son propre flux. Voilà tout l’intérêt : codez une fois, utilisez n’importe où! 

Maintenant…

    • Ajoutez une étape « flux enfant » (Child Flow). 
    • Sélectionnez le nouveau flux enfant dans le menu déroulant. 
    • Dans l’entrée « TriggerBody » tapez triggerBody() dans l’onglet Expression. 

Encore une fois, les valeurs du contexte de déclenchement seront disponibles directement dans l’onglet Contenu dynamique, prêtes à être réutilisées. 

Voici un exemple de ce qui apparaît dans la sortie quand on exécute le flux enfant :

Le tour est joué! 

 

Et concrètement, à quoi ça sert?

Maintenant que vous savez comment extraire des valeurs de contexte de déclenchement, vous pouvez les réutiliser dans la logique de n’importe quel flow. 

Par exemple, vous pourriez vous en servir pour compléter un courriel qui s’envoie chaque fois qu’une action s’effectue dans un compte (voir ci-dessous). 

À l’avenir, lorsque vous développerez des flows à l’aide du connecteur Common Data Service (environnement actuel), le contexte dexécution des flows n’aura plus de secret. 

Vous aimeriez en savoir plus?

Notre équipe peut vous accompagner avec des conseils personnalisés, des formations ou de nouvelles solutions adaptées à vos besoins. Optimisez l’utilisation de vos technologies et vos processus quotidiens : contactez l’un de nos experts.


Cet article est une initiative de notre expert David Rivard