# `loop_foreach` — Schleife über eine Liste **Zweck:** Iteriert über ein Array aus dem Kontext und führt die direkt enthaltenen Kind-Tasks pro Element aus. Voll wartefähig: Pausiert der Workflow mitten in einer Iteration (z. B. für eine Benutzeraktion), geht es beim nächsten Trigger exakt dort weiter. Jede Iteration hat einen eigenen Sub-State, damit sich Abschluss-Marker nicht vermischen. **Parameter** | Name | Pflicht? | Default | Beschreibung | |---|---|---|---| | `items` | ja | — | Quelle der Elemente: Kontext-Array (`{{anlagen}}`), JSON-String oder kommaseparierte Liste. | | `as` | nein | `item` | Variablenname des aktuellen Elements im Kontext. | | `index_var` | nein | — | Variable für den 0-basierten Index. | | `total_var` | nein | — | Variable für die Gesamtanzahl. | | Kind-Tasks | ja | — | Beliebige ``-Elemente direkt im Schleifen-Element (analog zu einer Sequenz). `assign_to` an Kind-Tasks wird bei Wartezuständen automatisch übernommen. | **Eingangswerte:** Die referenzierte Liste unter `items`. **Ausgangswerte:** Pro Durchlauf `{{}}` (aktuelles Element); bei Objekt-Elementen zusätzlich flache Felder `{{_feld}}` bzw. `{{.feld}}`; optional `{{}}` und `{{}}`. Ausgaben der Kind-Tasks landen im Kontext. Leere Liste = Schleife wird übersprungen. ```xml {{anlagen}} anlage i n {{ICH.mail}} {{anlage.pdf_pfad}} ```