Filter Array und Select statt Apply to each in Power Automate

Filter Array und Select ersetzen Apply to each beim Filtern und Umformen von Arrays und laufen deutlich schneller.

Wenn ein Cloud Flow ein Array durchgehen muss, greifen viele automatisch zur Aktion Apply to each. Für einfache Fälle ist das auch völlig in Ordnung, aber sobald es nur darum geht, ein Array zu filtern oder die Form seiner Objekte zu ändern, lohnt sich ein Blick auf zwei Alternativen aus der Kategorie Datenvorgänge: Filter Array und Select. Beide erledigen genau diese Aufgabe in einem einzigen Schritt, ohne dass der Flow durch jedes Element einzeln laufen muss.

Dieser Beitrag zeigt, wie die beiden Aktionen funktionieren, wo sie Apply to each sinnvoll ersetzen und wo eine Schleife trotzdem die richtige Wahl bleibt. Zu den Grenzen von Apply to each selbst, etwa bei sehr großen Arrays und den Aktionslimits von Power Automate, findest du mehr im Beitrag zu den Power-Automate-Aktionslimits.

Warum Apply to each bei Filtern und Umformen oft der Umweg ist

Apply to each führt die enthaltenen Aktionen für jedes einzelne Element eines Arrays aus. Bei 200 Bestellungen mit zwei Aktionen im Schleifenkörper sind das 400 Einzelausführungen, die alle gegen das Aktionslimit deines Flows zählen und im Flow-Verlauf einzeln protokolliert werden. Geht es dabei nur darum, bestimmte Elemente herauszufiltern oder Felder umzubenennen, entsteht dieser Aufwand ohne echten Grund, denn genau dafür gibt es die Datenvorgänge. Microsoft beschreibt das in der eigenen Anleitung so: Ziehe die Verwendung eines Filter- oder Auswahlvorgangs anstelle einer Bedingung in einer Schleife in Betracht, um Elemente in einer Tabelle zu finden, die bestimmten Kriterien entsprechen, dieser Ansatz kann den Cloud Flow vereinfachen und die Leistung verbessern, wie es in der offiziellen Übersicht zu Datenvorgängen in Power Automate heißt. Filter Array und Select laufen dabei jeweils als eine einzige Aktion, unabhängig davon, ob das Array fünf oder fünftausend Einträge enthält.

Die Filter-Array-Aktion: eine Teilmenge bilden, ohne zu durchlaufen

Die Aktion Array filtern reduziert ein Array auf die Objekte, die deinen Kriterien entsprechen, laut der offiziellen Dokumentation zu den Datenvorgängen. Du gibst im Abschnitt Filterabfrage an, welches Feld mit welchem Wert verglichen werden soll, etwa Status ist gleich Offen, und erhältst als Ergebnis ein neues Array mit genau den passenden Einträgen. Zwei Dinge solltest du dabei kennen:

  • Die Aktion kann die Anzahl der Objekte reduzieren, aber nicht die Form der einzelnen Objekte ändern. Für Umformungen brauchst du zusätzlich Select.
  • Der Vergleichstext ist Groß- und Kleinschreibung-sensitiv, ein Filter auf offen findet also kein Objekt mit dem Wert Offen.

Für einfache Vergleiche reicht die einfache Ansicht, für kombinierte Bedingungen mit Und/Oder-Logik wechselst du in den erweiterten Modus und schreibst den Ausdruck direkt.

Die Select-Aktion: Datenstruktur umbauen ohne Schleife

Während Filter Array die Anzahl der Objekte verändert, verändert Select deren Form. Mit der Aktion lassen sich Felder umbenennen, neue Felder aus vorhandenen zusammensetzen oder nicht benötigte Felder weglassen, ohne dass sich die Anzahl der Objekte im Array ändert. Ein Beispiel aus der Microsoft-Doku: Aus Objekten mit den Feldern first und last entsteht mit Select ein Array mit FirstName, FamilyName und einem zusätzlichen FullName-Feld, das beide Werte verbindet. Das Ergebnis ist wieder ein Array, das du direkt an nachfolgende Aktionen weitergeben kannst, etwa an eine Create-CSV-table- oder eine SharePoint-Aktion. Das reduziert nicht nur die Komplexität deines Flows, sondern laut Microsoft auch die Nutzlastgröße, wenn die Daten anschließend an ein anderes System übergeben werden.

Praxisbeispiel: Filter Array und Select kombinieren

In der Praxis stehen die beiden Aktionen fast immer hintereinander. Ein typischer Ablauf, den du ohne eine einzige Apply-to-each-Aktion umsetzen kannst:

1. Eine Aktion wie Get items oder ein HTTP-Aufruf liefert ein Array mit allen Bestellungen zurück.

2. Filter Array reduziert das Array auf die Bestellungen mit Status gleich Offen.

3. Select formt die verbleibenden Objekte um: Nur Bestellnummer, Kundenname und Betrag werden übernommen, mit sprechenden Feldnamen für das Zielsystem.

4. Das Ergebnis geht direkt an eine Aktion, die mehrere Datensätze auf einmal verarbeitet, etwa Create CSV table oder eine Batch-Aktion des Zielkonnektors.

Vier Aktionen statt einer Schleife mit potenziell hunderten Durchläufen, dazu ein Flow, der auf einen Blick nachvollziehbar bleibt. Du behältst dabei die Kontrolle über jeden Verarbeitungsschritt, weil jede Aktion nur eine klar abgegrenzte Aufgabe übernimmt.

Wo Apply to each trotzdem die richtige Wahl bleibt

Filter Array und Select ersetzen keine Schleife, wenn pro Element ein eigener Seiteneffekt nötig ist, etwa wenn für jede Bestellung einzeln eine E-Mail verschickt, ein Datensatz in einem System ohne Batch-Endpunkt angelegt oder ein Unterflow aufgerufen werden muss. Auch wenn die Verarbeitung eines Elements vom Ergebnis des vorherigen abhängt, bleibt eine Schleife oft die einfachere Lösung. Arbeitest du direkt mit Dataverse, gibt es sogar eine dritte Option: Statt Filter Array und Select im Flow zu verwenden, filterst und wählst du die Daten laut Microsoft besser gleich in der Quelle über die Optionen Spalten auswählen und Zeilen filtern der jeweiligen Aktion, das reduziert die übertragene Datenmenge von vornherein. Wo genau die Grenze für dein Setup liegt, lässt sich am besten anhand des konkreten Flows einschätzen, etwa im Rahmen einer Power-Automate-Beratung.

Häufige Fragen

Kann ich Filter Array und Select in beliebiger Reihenfolge einsetzen?

In der Regel filterst du zuerst mit Filter Array und formst das Ergebnis danach mit Select um, weil Select dann weniger Objekte verarbeiten muss. Technisch lässt sich die Reihenfolge auch umkehren, meist ist die gefilterte Variante zuerst aber übersichtlicher und etwas sparsamer.

Zählen Filter Array und Select auch gegen das Aktionslimit von Power Automate?

Ja, jede der beiden Aktionen zählt wie jede andere Aktion einmal gegen das Limit deines Flows. Der Unterschied zu Apply to each liegt darin, dass sie unabhängig von der Arraygröße immer nur als eine einzige Aktion ausgeführt werden, während eine Schleife pro Element eigene Aktionsausführungen erzeugt.

Kann Filter Array auch die Form der Objekte in einem Array ändern?

Nein. Filter Array verändert ausschließlich, wie viele Objekte im Ergebnis-Array enthalten sind, nicht deren Struktur. Sollen Felder umbenannt, ergänzt oder entfernt werden, ist dafür die Select-Aktion zuständig.

Was passiert, wenn Filter Array kein passendes Element findet?

Die Aktion gibt in diesem Fall ein leeres Array zurück, der Flow läuft ohne Fehler weiter. Willst du prüfen, ob überhaupt Ergebnisse vorhanden sind, kombinierst du das Ergebnis mit der Funktion length() in einer nachfolgenden Bedingung.

Lohnt sich der Umstieg von Apply to each auf Filter Array und Select auch bei kleinen Arrays?

Bei sehr kleinen, stabilen Arrays mit wenigen Einträgen ist der Performancegewinn gering. Der Vorteil liegt dann eher in der Übersichtlichkeit und Wartbarkeit des Flows als in der Laufzeit, was sich aber spätestens dann auszahlt, wenn das Array im Betrieb größer wird als ursprünglich geplant.

Über NordFlux

NordFlux UG (haftungsbeschränkt)

NordFlux baut Organisationen digitale Mitarbeiter: Automatisierungen und KI-Agenten, die wiederkehrende Arbeit abnehmen. Sie behalten die Kontrolle.

Mehr über uns
Kostenlose Erstanalyse

Konkrete Fragen zu Automatisierung oder KI?

In der kostenlosen Erstanalyse besprechen wir Ihren Fall direkt. Unverbindlich.

Filter Array und Select statt Apply to each