Chez nos clients qui utilisent Microsoft Power Platform pour créer des applications d’entreprise, un même besoin revient souvent :  planifier un flux de travail (workflow) sur une collection d’enregistrements. 

Par exemple, disons que vous souhaitez mettre en place un workflow (classique) pour chaque contact actif à minuit tous les jours. Quelles sont vos options? Malheureusement, il n’existe pas de solution toute faite pour répondre à ce besoin dans Microsoft Power Platform. Cependant, en utilisant FLOW et avec quelques ajustements, vous pouvez facilement obtenir le même résultat.  

Voici comment pour utiliser FLOW comme planificateur de workflows (classiques) dans Microsoft Power Platform en 8 étapes simples : 

 

– DANS L’ÉDITEUR DE WORKFLOW CLASSIQUE – 

Intégrez d’abord votre workflow dans une Action 

Commencez par intégrer votre flux de travail dans une Action. Ce qu’il y a de bien avec les Actions dans la Power Platform, c’est qu’elles sont exposées par l’API web et que chaque Action est accessible avec une requête POST (HTTP). 

//{TENANT}.{REGION}.dynamics.com/api/data/v9.1/{ENTITYLOGICALNAME}({GUID})/Microsoft.Dynamics.Crm.{ACTIONNAME} 

 

1 – Configurez votre workflow existant pour qu’il puisse être exécuté comme un Child process. 

2 – Créez un nouveau processus de type Action avec la même entité de base que le workflow à planifier 

Dans action steps : ajoutez une étape Start a Child Workflow et sélectionnez le workflow à partir de l’étape 1 . 

 

 – DANS FLOW – 

Pour ce qui est de la partie dans FLOW, c’est assez simple à configurer.  

Voici un aperçu du FLOW obtenu :

 

3. Réglez la pagination à On dans la tâche List Records 

Assurez-vous d’effectuer ce réglage, sans quoi votre liste sera limitée aux 512 premiers enregistrements.  

Tenez compte qu’il y a une limite de 100 000 boucles dans la tâche Apply to each.   

 

4. Utilisez le HTTP avec connecteur Azure AD, plutôt que l’appel HTTP classique

Que se passe-t-il pour l’appel HTTP vers la Power Platform WebApi? Comme vous aurez besoin d’obtenir un jeton pour passer l’appel en toute sécurité, vous ne pourrez pas facilement utiliser un appel HTTP classique.   

Vous devrez donc utiliser le HTTP avec connecteur Azure AD. En effet, une fois configuré avec les bonnes informations d’identification, ce connecteur pourra effectuer des appels sécurisés vers l’API Power Platform. 

5. Entrez tout simplement l’URL de base de votre instance Power Platform et cliquez sur Sign In 

Vous serez invité à saisir des informations d’identification valides. Assurez-vous cependant que cet utilisateur ait le bon rôle de sécurité sur la Power Platform. 

 

6. Dans l’URL de la requête, entrez l’URL de l’action avec l’ID d’enregistrement courant (GUID) comme paramètre

 

 

7. Améliorez votre performance avec quelques ajustements

Tout d’abord, définissez le parallélisme de la tâche Apply to each : 

 

Ensuite, réglez la commande de simultanéité à On et ajustez le parallélisme à 50 : 

8. Ajustez le Retry Policy de l’appel HTTP

Comme vous effectuerez beaucoup d’appels à la Plate-forme Api, vous pourriez recevoir quelques 429 erreurs, disant que vous devez réessayer votre appel dans X secondes.  

 

Pour éviter d’obtenir ces erreurs, vous n’avez qu’à ajuster le Retry Policy de l’appel HTTP.  

Par exemple, vous pouvez régler le Retry Policy à Fixed Interval, pour qu’il réessaie jusqu’à un certain nombre de fois avec un délai prédéfini entre chaque reprise : 

 

L’exécution réussie du FLOW ressemblera à ceci :

 

Les tests sur la performance de cette approche

Après avoir effectué quelques tests,* voici les comparables :  

* Notez que les test ont été effectué sur un environnement démo.

Nous obtenons donc un débit d’exécution d’environ 100 requêtes/minute. 

Conclusion

En suivant cette approche, il est donc possible de programmer des workflows (classiques) Power Platform  avec FLOW. Vous obtenez ainsi une solution infonuagique robuste et peu coûteuse pour planifier vos workflows. 

 

Vous aimeriez en savoir plus sur les meilleures pratiques pour optimiser votre solution CRM? Contactez l’un de nos experts, qui pourra vous offrir des conseils personnalisés. Pour rester à l’affût des dernières nouvelles, suivez-nous sur LinkedIn et Twitter.


Cet article a été rendu possible grâce à l’expertise de notre développeur CRM David Rivard.