Files
2026-07-02 08:18:00 +02:00

34 lines
1.6 KiB
Markdown

# `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 `<task>`-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 `{{<as>}}` (aktuelles Element); bei Objekt-Elementen zusätzlich flache Felder `{{<as>_feld}}` bzw. `{{<as>.feld}}`; optional `{{<index_var>}}` und `{{<total_var>}}`. Ausgaben der Kind-Tasks landen im Kontext. Leere Liste = Schleife wird übersprungen.
```xml
<task type="loop_foreach" id="alle_anlagen">
<items>{{anlagen}}</items>
<as>anlage</as>
<index_var>i</index_var>
<total_var>n</total_var>
<task type="pdf_stamp_interactive" id="stempel">
<assign_to>{{ICH.mail}}</assign_to>
<config>
<file>{{anlage.pdf_pfad}}</file>
</config>
</task>
</task>
```