# `foreach_parallel` — Parallele Multi-Instanz über eine Liste **Zweck:** Führt die Kind-Tasks für JEDES Listenelement unabhängig aus — im Gegensatz zu `loop_foreach` blockiert ein wartendes Element nicht die übrigen. Optional mit Abschlussbedingung: Sind z. B. 80 % der Elemente fertig, werden die restlichen storniert. **Parameter** | Name | Pflicht? | Default | Beschreibung | |---|---|---|---| | `items` | **ja** | — | Quelle der Elemente: Kontext-Array, JSON-String oder CSV (wie `loop_foreach`) | | `as` | nein | `item` | Variablenname des aktuellen Elements | | `completion_condition` | nein | — | Abbruchbedingung `a op b` (`>=`,`<=`,`>`,`<`,`==`,`!=`); Variablen `{{fertig}}`, `{{gesamt}}` | | `rest` | nein | `cancel` | Bei erfüllter Bedingung: `cancel` (Rest stornieren) oder `weiter` (Rest zu Ende laufen) | | Kind-Tasks | **ja** | — | ``-Elemente direkt im Element; je Listenelement eigener Zustand | **Eingangswerte:** Die Liste unter ``; je Element `{{}}`, `{{_index}}` und bei Objekt-Elementen flache Felder `{{_feld}}`. **Ausgangswerte:** - `_fertig` — Anzahl komplett abgeschlossener Elemente - `_gesamt` — Gesamtanzahl - `_storniert` — Anzahl stornierter Elemente (bei `rest=cancel`) - pro fertigem Element: `__` mit dessen Ergebnisvariablen **XML-Beispiel** ```xml {{empfaenger_json}} person {{fertig}} >= 3 cancel ``` **Hinweis (Engine-Grenze):** Gedacht für automatische Kind-Tasks (`webhook`, `email`, PDF-Verarbeitung, `signal_wait`, `wait_until` …). Interaktive Formulare pro Element funktionieren nur eingeschränkt, weil die Engine pro Aufruf nur eine Formularseite ausliefern kann — für Mehrpersonen-Eingaben stattdessen `quorum` verwenden.