Files

32 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

# `subworkflow` — Anderen Workflow einbetten
**Zweck:** Lädt eine zweite Workflow-XML (Name ohne `.xml` aus dem Workflow-Verzeichnis) und führt sie synchron im laufenden Workflow aus — inklusive Wartezuständen. Sub- und Parent-Workflow teilen sich keinen Ausführungsstatus, dieselbe XML kann also mehrfach eingebettet werden. Variablen werden per `<pass>` hinein- und per `<return>`/`merge_prefix` herausgereicht.
**Parameter**
| Name | Pflicht? | Default | Beschreibung |
|---|---|---|---|
| `xml` | ja | — | Name der Sub-Workflow-Definition (ohne `.xml`). |
| `<pass><var name="…">wert</var></pass>` | nein | — | Eingangsvariablen für den Sub-Workflow. Ohne `<pass>` erbt er den gesamten Parent-Kontext. |
| `<return><var name="…" from="…"/></return>` | nein | — | Rückgabevariablen: `from` = Name im Sub-Kontext (Default: wie `name`), `name` = Zielname im Parent-Kontext. |
| `merge_prefix` | nein | — | Hängt alternativ/zusätzlich den kompletten Sub-Kontext mit diesem Präfix in den Parent-Kontext. |
**Eingangswerte:** Parent-Kontext (komplett geerbt) plus explizite `<pass>`-Variablen.
**Ausgangswerte:** Die `<return>`-Variablen bzw. alle Sub-Variablen unter `<merge_prefix>…`. Wartezustände (inkl. `assign_to`) werden aus dem Sub-Workflow durchgereicht. Hinweis: Der Sub-Workflow erscheint nicht als eigener Eintrag im Dashboard — dafür stattdessen einen regulären Workflow-Start nutzen.
```xml
<task type="subworkflow" id="freigabe">
<config>
<xml>freigabe-modul</xml>
<pass>
<var name="betrag">{{summe}}</var>
</pass>
<return>
<var name="freigabe_decision" from="decision" />
<var name="freigabe_comment" from="comment" />
</return>
</config>
</task>
```