HomePower AutomateFlux - Parcourir une liste d'éléments plus rapidement

Flux – Parcourir une liste d’éléments plus rapidement

Power Automate amène de beaux outils pour créer des processus d’automatisation simples ou complexes. Il peut devenir un allier à plusieurs casse-têtes à travers l’ensemble des projets Power Platform. L’ennui est que, parfois, l’exécution devient pénible si notre flux parcours un grand nombre d’enregistrements, et même parfois peu d’enregistrements! Pourtant, si on se fait à la logique et la complexité d’exécution, pour faire une opération sur chaque élément d’une liste, nous sommes forcer de parcourir l’ensemble des éléments. Par contre, il existe certaines actions ayant de meilleurs rendements que le trajet qui semble le plus logique, le classique ‘Appliquer-à-chacun’. Voyons voir le connecteur ‘Opération de données’.

Test de performance

Prenons un cas très simple, consistant à parcourir les enregistrements de la table ‘Utilisateurs’… assez simple, non ? Dans mes tests, je vise simplement à récupérer la liste des courriels principals de chaque utilisateur et concaténer le tout dans une variable avec une virgule comme séparateur.

Flux 1: Boucle parcourant chaque élément

Flux 2: Utiliser 2 actions d’Opération de données, soit ‘Sélectionner’ et ‘Message’… Bon les noms d’opérations ne sont pas très révélateurs, donc ‘Sélectionner’ est un ‘Select’ de SQL. Il récupère le(s) champ(s) pointé(s) en gardant le format du tableau. Pour ‘Message’, il construit tout simplement un objet avec la formule que vous lui donnez. Le tout ressemble à ceci:

Notez la formule de l’action ‘Message’ comme suit (élimine l’aspect tableau tout simplement):
replace(replace(replace(join(body('Sélectionner'),','),'{"email":"',''),'"}',''),',',';')

Maintenant, après avoir fait l’exécution des 2 flux, le temps d’exécution de chacun d’entre eux:

Test | Op action -> Flux avec opérations de données

Test | Op action -> Flux avec boucle traditionnelle

Résultat convainquant

En voyant les résultats, on voit qu’il y a une extrême différence dans le temps d’exécution des 2 flux. À noter que, dans mon exemple, on a que 176 enregistrements, mais on constate malgré tout un temps d’exécution 29-30x plus petit que la boucle traditionnelle!

Si vous désirez des fluxs réactifs et qui gardent un temps d’exécution agréable, songez à prioriser le connecteur ‘Opération de données’ lorsque la situation vous le permet. Vous sauverez énormément de temps!

Bon développement!

Gabriel Gadoury
Gabriel Gadoury
Avec plus de 11 ans d'expérience en développement d'application d'envergure, d'automatisations et de formation. Je me spécialise maintenant en Power Platform depuis plus de 6 ans, offrant du soutien et des idées à la communauté pour la faire grandir, faire connaître Power Platform et repousser les limites de cette techno encore plus loin.