Kdy použít iterátor
| Scénář | Příklad |
|---|---|
| Zpracujte výsledky hledání | Odešlete e-mail každé nalezené osobě |
| Zpracujte pole webhooků | Vytvořte záznamy pro každou položku v daném pořadí |
| Hromadné aktualizace | Aktualizujte více záznamů vypočtenými hodnotami |
| Upozornění | Upozorněte více osob na událost |
Porozumění iterátoru
Iterátor jako vstup očekává pole. Poté:- Vezme první položku z pole
- Spustí všechny akce uvnitř iterátoru s touto položkou
- Přejde na další položku
- Opakuje, dokud nejsou zpracovány všechny položky
Základní nastavení
Příklad: Odeslání e-mailu všem ve výsledcích hledání
Cíl: Najděte všechny kontakty v konkrétní společnosti a každému pošlete personalizovaný e-mail.Krok 1: Vyhledejte záznamy
- Přidejte akci Vyhledat záznamy
- Objekt: People
- Filtr: Company se rovná “Acme Inc”
- To vrátí pole osob
Krok 2: Zkontrolujte, že existují výsledky
- Přidejte akci Filtr
- Podmínka:
{{searchRecords.length}}je větší než 0 - Tím se zabrání chybám iterátoru při prázdných výsledcích
Krok 3: Přidejte iterátor
- Přidejte akci Iterator
- Vstup pole: Vyberte
{{searchRecords}} - Tím vytvoříte smyčku
Krok 4: Přidejte akce uvnitř iterátoru
Akce umístěné za iterátorem se spustí pro každou položku:- Přidejte akci Odeslat e-mail (uvnitř iterátoru)
- Komu:
{{iterator.currentItem.email}} - Předmět: Dobrý den,
{{iterator.currentItem.firstName}}! - Tělo: Personalizovaná zpráva využívající pole aktuální položky
Výsledek
Pokud Search Records vrátí 5 osob, iterátor:- Odešle e-mail osobě 1
- Odešle e-mail osobě 2
- … pokračuje pro všech 5
Přístup k datům aktuální položky
Uvnitř iterátoru použijte{{iterator.currentItem}} pro přístup k aktuálnímu záznamu:
| Proměnná | Popis |
|---|---|
{{iterator.currentItem}} | Celý objekt aktuálního záznamu |
{{iterator.currentItem.id}} | ID záznamu |
{{iterator.currentItem.email}} | Pole e-mailu |
{{iterator.currentItem.company.name}} | Název související společnosti |
{{iterator.index}} | Aktuální pozice v poli (od 0) |
Běžné vzory
Aktualizace více záznamů
Cíl: Označit všechny zpožděné úkoly jako “Late”Vytváření záznamů z pole
Cíl: Webhook přijme objednávku s více položkami, vytvořte záznam pro každou z nichPodmíněné zpracování uvnitř smyčky
Cíl: Posílat e-mail pouze kontaktům s platnými e-mailovými adresamiŘešení potíží
”Iterátor očekává pole”
Příčina: Předali jste jeden záznam místo pole. Řešení: Ujistěte se, že předáváte výsledek akce Search Records nebo pole, nikoli jeden záznam.Iterátor se nespouští
Příčina: Pole je prázdné. Řešení: Před iterátor přidejte filtr pro kontrolu délky pole:Akce se spouštějí příliš mnohokrát
Příčina: Search Records vrátil více záznamů, než se očekávalo. Řešení:- Přidejte konkrétnější filtry do akce Search Records
- Nastavte limit v akci Search Records (max. 200)
- Přidejte filtr uvnitř iterátoru pro doplňující podmínky
Aspekty výkonu
- Spotřeba kreditů: Každá iterace spotřebuje kredity za své akce
- Čas: Zpracování velkých polí trvá déle
- Limity: Zvažte dávkové zpracování velmi velkých operací
- Omezení rychlosti: Volání externích API mohou při mnoha iteracích narazit na limity rychlosti
Osvědčené postupy
- Před iterátorem vždy zkontrolujte délku pole, abyste předešli chybám
- Přidávejte filtry uvnitř smyček, pokud není potřeba zpracovat všechny položky
- Přejmenujte krok iterátoru, aby popisoval, co prochází
- Testujte s malými poli před zpracováním velkých datových sad
- Sledujte spuštění pracovních postupů, abyste zajistili, že iterace proběhnou podle očekávání