Wann Sie Iterator verwenden sollten
| Szenario | Beispiel |
|---|---|
| Suchergebnisse verarbeiten | E-Mail an jede gefundene Person senden |
| Webhook-Arrays verarbeiten | Der Reihe nach für jedes Element Datensätze erstellen |
| Massenaktualisierungen | Mehrere Datensätze mit berechneten Werten aktualisieren |
| Benachrichtigungen | Mehrere Personen über ein Ereignis benachrichtigen |
Iterator verstehen
Iterator erwartet ein Array als Eingabe. Dann:- Nimmt das erste Element aus dem Array
- Führt alle Aktionen innerhalb des Iterators mit diesem Element aus
- Wechselt zum nächsten Element
- Wiederholt sich, bis alle Elemente verarbeitet sind
Grundlegende Einrichtung
Beispiel: E-Mail an alle in den Suchergebnissen
Ziel: Alle Kontakte in einem bestimmten Unternehmen finden und jedem eine personalisierte E-Mail senden.Schritt 1: Nach Datensätzen suchen
- Fügen Sie die Aktion Datensätze suchen hinzu
- Objekt: Personen
- Filter: Unternehmen ist gleich “Acme Inc”
- Dadurch wird ein Array von Personen zurückgegeben
Schritt 2: Prüfen, ob Ergebnisse vorhanden sind
- Fügen Sie eine Filter-Aktion hinzu
- Bedingung:
{{searchRecords.length}}ist größer als 0 - Dies verhindert Iterator-Fehler bei leeren Ergebnissen
Schritt 3: Iterator hinzufügen
- Fügen Sie eine Iterator-Aktion hinzu
- Array-Eingabe: Wählen Sie
{{searchRecords}}aus - Dadurch wird eine Schleife erstellt
Schritt 4: Aktionen im Iterator hinzufügen
Aktionen, die nach dem Iterator platziert werden, werden für jedes Element ausgeführt:- Fügen Sie eine E-Mail senden-Aktion hinzu (im Iterator)
- An:
{{iterator.currentItem.email}} - Betreff: Hallo
{{iterator.currentItem.firstName}}! - Text: Personalisierte Nachricht unter Verwendung der Felder des aktuellen Elements
Ergebnis
Wenn Datensätze suchen 5 Personen zurückgibt, führt der Iterator Folgendes aus:- Sendet E-Mail an Person 1
- Sendet E-Mail an Person 2
- … setzt dies für alle 5 fort
Zugriff auf Daten des aktuellen Elements
Im Iterator verwenden Sie{{iterator.currentItem}}, um auf den aktuellen Datensatz zuzugreifen:
| Variable | Beschreibung |
|---|---|
{{iterator.currentItem}} | Das vollständige Objekt des aktuellen Datensatzes |
{{iterator.currentItem.id}} | Datensatz-ID |
{{iterator.currentItem.email}} | E-Mail-Feld |
{{iterator.currentItem.company.name}} | Name des zugehörigen Unternehmens |
{{iterator.index}} | Aktuelle Position im Array (0-basiert) |
Häufige Muster
Mehrere Datensätze aktualisieren
Ziel: Alle überfälligen Aufgaben als “Late” markierenDatensätze aus Array erstellen
Ziel: Ein Webhook erhält eine Bestellung mit mehreren Positionen; für jede Position einen Datensatz erstellenBedingte Verarbeitung innerhalb der Schleife
Ziel: Nur E-Mails an Kontakte mit gültigen E-Mail-Adressen sendenFehlerbehebung
”Iterator erwartet ein Array”
Ursache: Sie haben einen einzelnen Datensatz statt eines Arrays übergeben. Lösung: Stellen Sie sicher, dass Sie das Ergebnis von Datensätze suchen oder ein Array-Feld übergeben, nicht einen einzelnen Datensatz.Iterator wird nicht ausgeführt
Ursache: Das Array ist leer. Lösung: Fügen Sie vor dem Iterator einen Filter hinzu, um die Array-Länge zu prüfen:Aktionen werden zu oft ausgeführt
Ursache: Datensätze suchen hat mehr Datensätze zurückgegeben als erwartet. Lösung:- Fügen Sie der Aktion „Datensätze suchen“ spezifischere Filter hinzu
- Legen Sie für die Aktion „Datensätze suchen“ ein Limit fest (max. 200)
- Fügen Sie innerhalb des Iterators einen Filter für zusätzliche Bedingungen hinzu
Leistungsaspekte
- Credit-Verbrauch: Jede Iteration verbraucht Credits für ihre Aktionen
- Zeit: Große Arrays benötigen länger für die Verarbeitung
- Grenzwerte: Ziehen Sie für sehr große Vorgänge eine Stapelverarbeitung in Betracht
- Ratenlimits: Externe API-Aufrufe können bei vielen Iterationen auf Ratenlimits stoßen
Beste Praktiken
- Prüfen Sie stets die Array-Länge vor dem Iterator, um Fehler zu vermeiden
- Fügen Sie Filter innerhalb von Schleifen hinzu, wenn nicht alle Elemente verarbeitet werden müssen
- Benennen Sie Ihren Iterator-Schritt um, um zu beschreiben, was durchlaufen wird
- Testen Sie mit kleinen Arrays, bevor Sie große Datenmengen verarbeiten
- Überwachen Sie Workflow-Ausführungen, um sicherzustellen, dass Iterationen wie erwartet abgeschlossen werden