Power Automate
L'astuce Scope() pour de meilleures performances de flux
Enveloppez des actions parallèles dans un Scope pour les exécuter simultanément et réduire le temps d'exécution de votre flux jusqu'à 80 %.
Le problème
Par défaut, Power Automate exécute les actions séquentiellement. Si vous avez trois appels API indépendants qui prennent chacun 2 secondes, votre flux prend 6 secondes. Mais ces appels ne dépendent pas les uns des autres : ils pourraient s'exécuter en même temps.
Mauvaise approche : Actions séquentielles
Step 1: Get Customer Details (2s)
Step 2: Get Order History (2s)
Step 3: Get Payment Status (2s)
────────────────────────────────────
Total: 6s
Chaque action attend que la précédente se termine, même si aucune d'entre elles n'utilise la sortie de l'autre.
Bonne approche : Scope parallèle
Enveloppez les actions indépendantes dans une action Scope. Les actions à l'intérieur d'un Scope s'exécutent en parallèle par défaut.
Scope: "Load All Data"
|-- Get Customer Details (2s) --+
|-- Get Order History (2s) --| All run at once
+-- Get Payment Status (2s) --+
────────────────────────────────────
Total: ~2s
Le flux passe à l'étape suivante uniquement après que toutes les actions à l'intérieur du Scope soient terminées.
Gestion des erreurs avec runAfter
Si une action dans le Scope échoue, le Scope entier échoue par défaut. Utilisez Configure run after sur une action suivante pour gérer les erreurs de manière élégante :
// Action after the Scope -- runs on failure too
"runAfter": {
"Scope_Load_All_Data": [
"Succeeded",
"Failed"
]
}
Puis vérifiez les résultats individuels :
if(equals(result('Get_Customer_Details')?[0]?['status'], 'Succeeded'),
'OK',
'Customer fetch failed'
)
Point clé
Regroupez les actions indépendantes dans un Scope pour un parallélisme automatique. Trois actions de 2 secondes chacune passent de 6 secondes à 2 secondes : une réduction de 66 % sans coût supplémentaire.