Microsoft Power Automate Flow parallelisieren

von Roland Rickborn
Power Automate beschleunigen

Einführung

In diesem "Quick Tipp" geht es um die Gegenüberstellung von seriellen und parallelen Flows, darum wie man einen Flow parallelisiert und darum welche Geschwindigkeitsvorteile parallele Flows bieten.

Überblick der Problematik serieller Flows in Power Automate

Wenn man in Power Automate Flows anlegt, hat man häufig mit Schleifen zu tun (for-each-loop). Standardmäßig wird so eine Schleifenschritt in Power Automate seriell ausgeführt, also immer eine Schleife nach der anderen. Dies ist die sichere Einstellung, weil sie ohne Seiteneffekte ausgeführt werden kann. Allerdings ist diese Variante deshalb auch sehr langsam.

In meinem Beispiel-Flow Serieller Flow verwende ich 1041 Datensätze von Ortsnamen und Postleitzahlen. Die Datensätze werden seriell durchlaufen. Bei jedem Datensatz wird überprüft, ob der Ortsname das Präfix "Bad " enthält. Falls die Bedingung zutrifft, wird der Datensatz zur Auswahl hinzugefügt. Vor Eintritt in die Schleife und nach Verlassen der Schleife wird die Zeit gemessen. Am Ende des Flows wird die Dauer berechnet und angezeigt und zur Kontrolle wird auch die Auswahl angezeigt.

Der serielle Flow benötigt 2:14 Minuten um alle 1041 Datensätze zu verarbeiten. Wie läßt sich der Flow beschleunigen?

Lösungsansatz: Flow parallelisieren

Power Automate bietet mit der Gleichzeitigkeitssteuerung die Möglichkeit, ausgewählte Schritte eines Flows zu parallelisieren. Diese Einstellung wird pro Schritt vorgenommen, sie bezieht sich also nicht auf den kompletten Flow!

Bevor ausgewählte Schritte eines Flows parallelisiert werden, muss man sich Gedanken über den Prozessablauf machen. Dabei kann es unter Umständen erforderlich sein, den Gesamtprozess in unabhängige Unterprozesse zu untergliedern.

In unserem Beispiel-Flow sieht man, dass der Schritt Auf alle Datensätze anwenden am meisten Zeit benötigt. In diesem Schritt werden alle Datensätze einzeln auf eine bestimmte Bedingung hin überprüft. Falls die Bedingung erfüllt ist, wird der Datensatz zu einem Array hinzugefügt. Das Hinzufügen eines Datensatzes zu einem Array ist unabhängig von anderen Schritten, so daß der Schritt Auf alle Datensätze anwenden also ohne Bedenken parallelisiert werden kann.

Um in Power Automate einen Schritt zu parallelisieren muss man in den Einstellungen des Schritts die Gleichzeitigkeitssteuerung aktivieren.

In den Schritt-Einstellungen kann dann die Gleichzeitigkeitssteuerung aktiviert werden.

Der parallelisierte Flow sieht identisch aus, es gibt leider keinen Indikator, der dem Benutzer anzeigt, ob es sich um einen seriell oder parallel ausgeführten Schritt handelt.

Der serielle Flow benötigt 13 Sekunden um alle 1041 Datensätze zu verarbeiten. Durch die Parallelisierung des Flows haben wir also eine Geschwindigkeitszunahme um 1031% erreicht!

Fazit zum Parallelisieren von Flows in Power Automate

Über Parallelisierung von Flows nachzudenken ist auf jeden Fall sinnvoll! Durch Parallelisierung lassen sich unter Umständen große Geschwindigkeitsverbesserungen realisieren. Die nachträgliche Umstellung eines bestehenden Flows von serieller zu paralleler Verarbeitung kann aber auch bedeuten, dass der gesamte Flow neu angeordnet werden muss. Je nach weiteren Randbedingungen kann sich dieser erhöhte Aufwand schnell lohnen.

Zurück

© 2006-2024 exensio GmbH
Einstellungen gespeichert
Datenschutzeinstellungen

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern.

Sie können Ihre Einwilligung jederzeit ändern oder widerrufen, indem Sie auf den Link in der Datenschutzerklärung klicken.

Zu den gesetzlichen Rechenschaftspflichten gehört die Einwilligung (Opt-In) zu protokollieren und archivieren. Aus diesem Grund wird Ihre Opt-In Entscheidung in eine LOG-Datei geschrieben. In dieser Datei werden folgende Daten gespeichert:

 

  • IP-Adresse des Besuchers
  • Vom Besucher gewählte Datenschutzeinstellung (Privacy Level)
  • Datum und Zeit des Speicherns
  • Domain
You are using an outdated browser. The website may not be displayed correctly. Close