Power Automate - Déduire l’URL d’exécution d’un flux

Vous automatisez des tâches en créant des flux avec Power Automate? En tant qu’administrateur ou concepteur, vous devez parfois examiner les exécutions précédentes d’un flux à des fins de contrôle ou de dépannage.  Et si vous pouviez déduire l’URL d’exécution d’un flux en cours d’exécution? Ce serait génial, non? Voici comment en 4 étapes faciles.

Normalement, pour consulter les journaux d’exécution d’un flux, vous devez vous rendre sur la page de gestion du flux concerné. Ensuite, vous pourrez consulter l’historique d’exécution. Ceci vous permettra d’identifier un flux qui pourrait être en erreur, par exemple. En cliquant sur le lien de l’historique, vous atteindrez la page d’exécution de la session de ce flux. Et vous accéderez ainsi à de l’information détaillée.

Image montrant comment consulter l'historique d'exécution d'un flux dans la page de gestion du flux concerné

Mais il y a une façon de déduire ce lien pendant l’exécution du flux. En effet, en déduisant l’URL du journal d’exécution en temps réel, vous pourrez par exemple:

  • Envoyer par courriel l’URL de l’exécution à un administrateur en cas d’erreur.
Envoyer par courriel l’URL de l’exécution à un administrateur en cas d’erreur.
  • Enregistrer l’URL de l’exécution dans un enregistrement Dataverse pour un examen plus approfondi.
Enregistrer l’URL de l’exécution dans un enregistrement Dataverse pour un examen plus approfondi.

Déduire l’URL d’un flux en cours d’exécution : 4 étapes faciles

1. Utiliser la fonction workflow()

D’abord, vous devez extraire certaines informations sur le contexte du flux en cours d’exécution. Pour ce faire, utilisez la fonction workflow() que vous trouverez sous l’onglet  Expression  dans l’explorateur de contenu dynamique (Dynamic Content).

De fait, le résultat de la fonction workflow() produit une sortie JSON telle que montrée ci-dessous. Certains des attributs retournés vont nous servir à construire l’URL d’exécution du flux.  

2. Analyser la sortie JSON

Maintenant que vous savez comment obtenir de l’information à partir de la fonction workflow(), allons-y pour la suite : l’analyse JSON (Parsing). De fait, cette étape vous permettra d’extraire les valeurs mentionnées ci-haut pour pouvoir les réutiliser facilement.

Premièrement, ajoutez une action « Parse JSON» et mettez la fonction workflow() comme contenu. Quant au schéma, ne vous donnez pas la peine de l’écrire manuellement. Cliquez simplement sur Generate from sample (générer à partir d’un échantillon) et insérez un exemple de sortie, comme celui vu à l’étape précédente. Le schéma JSON apparaîtra automatiquement! Ce n’est pas plus compliqué.

Parse JSON - Workflow
Power Automate - Ajoutez une action Parse JSON et mettez la fonction workflow - générer à partir d'un échantillon
ajoutez une action « Parse JSON» et mettez la fonction workflow() comme contenu.

Ainsi, les propriétés extraites pourront être utilisés dans les étapes subséquentes du flux directement à partir de l’onglet Dynamic Content (contenu dynamique). Voilà comment vous épargner bien des maux de tête!

Accès facile aux propriétés extraites - Workflow json outpu

3. Construire l’URL

Vous en êtes maintenant à l’étape finale : la construction d’une URL qui aura la forme suivante :

https://flow.microsoft.com/manage/environments/{environmentid}/flows/{flowid}/runs/{runid}

Truc de pro!

En utilisant « flow.microsoft.com » comme URL de base, votre URL sera valide peu importe l’emplacement géographique d’hébergement de votre flux. En cliquant sur le lien généré, vous serez automatiquement redirigé vers le bon domaine (ex. « us.flow.microsoft.com », « canada.flow.microsoft.com », etc.)

Maintenant, pour la construction de l’URL, ajoutez une étape « Compose » et utilisez la fonction concat() avec certains attributs extraits à l’étape précédente (Parse Json). Vous joindrez ainsi l’ensemble des parties de l’URL. Donc, l’expression finale aura l’air de ceci :

Pour joindre toutes les parties de la composition de l’URL, utilisez la fonction concat(). Ainsi, l’expression finale aura l’air de ceci :

concat(

‘https://flow.microsoft.com/manage/environments/’,

body(‘Parse_JSON’)?[‘tags’]?[‘environmentName’],

‘/flows/’,

body(‘Parse_JSON’)?[‘name’],

‘/runs/’,

body(‘Parse_JSON’)?[‘run’]?[‘name’]

)

Après l’avoir exécutée, vous verrez que l’URL a bel et bien été générée. Puis, en cliquant sur le lien, vous aboutirez (roulement de tambours...) sur la page d’exécution! N’est-ce pas merveilleux?  

 en cliquant sur le lien, vous aboutirez sur la page d’exécution

4. Extraire la logique dans un flux enfant

Mais ce n’est pas tout. Vous pouvez aussi intégrer la logique dans un flux enfant pour en faire profiter vos collègues, même ceux qui s’y connaissent moins. Ainsi, vous pourrez réutiliser facilement la fonction qui génère l’URL du flux dans tous vos autres projets.  

Prochaine étape? Créer le flux enfant :

1. Créez un nouveau flux dans un solution Dataverse

2. Insérez un déclencheur manuel (Manual trigger)

Ajouter un paramètre d’entrée (ex. WorkflowOutput) qui servira à recevoir la sortie de la fonction workflow() du flux parent.

3. Étapes de traitement

Recréez les étapes Parse JSON et Compose décrites ci-dessus, mais utilisez le paramètre d’entrée WorkflowOutput comme source de contenu.

4. Finalisez le flux

Terminez votre flux par une étape Respond to Power Apps or flow et configurez les sorties pour envoyer les FlowRunUrl et FlowName générés.

Enfin, le résultat final aura l’air de ceci :

C’est fait? Maintenant, quand vous créez un flux, vous pourrez commencer par intégrer le flux enfant (après le déclencheur). Ceci vous permettra d’utiliser l’URL d’exécution dans la logique de votre flux. Voyez :

utiliser l’URL d’exécution dans la logique de votre flux.

Ensuite, en cas d’erreur, vous pourrez, par exemple, envoyer un courriel à un administrateur.

Finalement, le lien mène directement au journal d’exécution du flux.

Et voilà le travail!