
La Power Platform de Microsoft est un écosystème complet conçu pour faciliter la création d’applications personnalisées, la gestion et la visualisation des données, ainsi que l’automatisation de tâches récurrentes.
Parmi ses outils phares, Power Automate se distingue par sa capacité à automatiser des processus en connectant facilement différents services et applications, qu’ils soient Microsoft ou tiers. Grâce à une interface intuitive, Power Automate est accessible même sans compétences techniques avancées.
Contexte et problématique
Dans un contexte professionnel, l’automatisation des tâches répétitives est un levier essentiel pour améliorer l’efficacité et la productivité. Power Automate répond à ce besoin en permettant de concevoir des flux de travail automatisés, capables d’effectuer des actions variées : envoi automatique d’e-mails, gestion de fichiers dans le cloud, extraction de données depuis des bases ou des API, etc.
Cependant, à mesure que les flux gagnent en complexité et que la volumétrie des données augmente, leur exécution peut devenir lente et coûteuse en ressources. Il est donc crucial d’optimiser leur conception.
Un élément souvent négligé : les boucles. Chaque itération d’une boucle consomme des actions, et Power Automateimpose une limite quotidienne d’actions par utilisateur, variant selon la licence (de 10 000 à 200 000 actions par 24h). Un flux mal conçu peut rapidement atteindre cette limite.
Exemple : une boucle sur 1000 éléments effectuant 2 actions par élément = 2000 actions consommées.
Pourquoi réduire les boucles ?
Outre la consommation excessive d’actions, les boucles :
Allongent considérablement le temps d’exécution ;
Complexifient la lisibilité des flux ;
Peuvent atteindre la limite de blocs par exécution, causant des erreurs ou des ralentissements.
Il est donc stratégique d’éviter les boucles inutiles, notamment lorsque Power Automate les insère automatiquement pour traiter des tableaux. Or, dans bien des cas, il est possible de s’en passer.
Comment réduire au maximum les boucles d’un Power Automate tout en ne perdant pas en fonctionnalité ?
Analyse Technique
Voici les cas les plus fréquents où les boucles sont utilisées à tort, et comment les contourner intelligemment :
Récupérer un seul élément d’un tableau
Utilisez la fonction first() pour accéder directement au premier élément sans boucle.
Avant (avec boucle) : Parcours du tableau pour extraire le premier élément.
Après (optimisé) : first(body('Nom_de_votre_action'))
➡️ Gain : exécution plus rapide, 1 seule action consommée.
2. Sélectionner une ou plusieurs colonnes d’un tableau
Utilisez l’action « Sélectionner » (Select) pour ne conserver que les propriétés nécessaires.
Exemple :
-> item()?[‘mail’]
Cela réduit la taille du tableau en ne gardant que les adresses e-mail, sans boucle.
Avant : (avec boucle) :
Après (sans boucle) :
➡️ Gain : exécution plus rapide, 1 seule action consommée.
3. Filtrer les éléments d’un tableau
Utilisez un filtre conditionnel via l’expression @startsWith() ou toute autre fonction de filtrage.
Exemple :
@startsWith(item()?[‘DisplayName’], ‘L’)
Vous récupérez uniquement les noms commençant par « L », sans parcourir manuellement chaque élément.
4. Recomposer une seule colonne à partir de plusieurs valeurs
Pour fusionner des champs, utilisez la fonction concat() au sein de l’action « Sélectionner ».
Exemple :
concat(item()?[‘DisplayName’], ‘,’)
Vous obtiendrez un tableau de chaînes concaténées, sans avoir besoin de passer par une boucle de composition.
Étude de cas
Contexte : une requête à l’API Microsoft Graph récupère une liste d’utilisateurs. Objectifs :
Extraire uniquement le premier utilisateur → Utilisation de first() : évite la boucle automatique.
Récupérer uniquement les adresses e-mail → Action « Sélectionner » avec item()?[‘mail’].
Filtrer les utilisateurs selon un critère → @startsWith(item()?[‘DisplayName’], ‘L’).
Créer un tableau de noms concaténés → concat(item()?[‘DisplayName’], ‘,’).
Chaque étape évite l’usage de boucles explicites. À la clé : moins de blocs, exécution plus rapide, et moins d’actions consommées.
Conclusion
Les quatre cas présentés précédemment sont les plus courants pour éviter de faire des boucles qui rendront l’exécution des flux beaucoup plus rapide et utiliseront moins de blocs, de plus ils gagneront en lisibilité.
En effectuant ces optimisations, les applications iront plus vite et seront donc plus simples d’utilisation et beaucoup moins chronophages, les actions finales également liées à ces flux comme l’envoi d’un mail ou la génération d’un document.
Aurélien LOGEAIS, Assistant Business App chez Kaizzen
Vous avez besoin d’un renseignement et d’accompagnement sur le déploiement des solutions Cloud Microsoft ?