SubFlow ausführen
Der Schritt SubFlow ausführen ruft einen anderen Flow (einen SubFlow) inline auf. Setze ihn ein, um Flows aus wiederverwendbaren Bausteinen zusammenzusetzen – die Logik einmal schreiben, von überall aus aufrufen.
Was passiert, wenn der Schritt läuft
- SubFlow ausführen wertet jede Eingabebindung im Kontext des aufrufenden Flows aus (Variablen, SmartFields, Konstanten).
- Die Engine startet die Version des SubFlows, auf die der Schritt festgelegt ist (siehe Welche SubFlow-Version läuft), in derselben Transaktion wie der aufrufende Flow. Dazwischen gibt es keine Commit-Grenze.
- Schritte innerhalb des SubFlows laufen synchron. Der aufrufende Flow wartet.
- Wenn der SubFlow-Output zurückgeben-Schritt feuert, stehen seine deklarierten Outputs als Variablen am SubFlow-ausführen-Schritt zur Verfügung. Outputs vom Typ
Reference(mit einer Tabellennr.) erscheinen als Datensatzreferenzen, die der aufrufende Flow in datensatzbezogene SmartFields binden kann; Outputs vom TypValueerscheinen als Text-auf-der-Leitung-Variablen. - Der aufrufende Flow läuft weiter.
Schlägt etwas im SubFlow fehl – ein Schritt erzeugt einen Fehler, ein Fehlerschritt feuert, das Tiefenlimit greift –, wird die gesamte Transaktion zurückgerollt und der übergeordnete Flow erhält eine einzelne Fehlermeldung mit dem Namen des SubFlows als Präfix.
Konfiguration
| Feld | Funktion |
|---|---|
| Beschreibung | Wird am Block im Editor angezeigt. |
| SubFlow | Wähle den aufzurufenden SubFlow. Der Lookup ist auf Flows mit SubFlow-Trigger gefiltert; andere Flows lassen sich nicht auswählen. |
| Version | Schreibgeschützt, angezeigt etwa als Version 1.2.0. Beim Auswählen wird die aktive Version des SubFlows übernommen. Der aufrufende Flow bleibt bei dieser Version, auch wenn der SubFlow später neu veröffentlicht wird. |
| Zu Version x.y.z wechseln | Erscheint nur, wenn der SubFlow inzwischen eine neuere aktive Version hat als die, die der Schritt nutzt. Ein Klick stellt den Schritt auf die neuere Version um. Veröffentlichen kannst du auch ohne. |
| Eingabebindungen | Eine Zeile pro Eingabeparameter, den der SubFlow deklariert. Binde jede an einen Wert, eine Variable oder einen SmartField-Ausdruck. Das Raster wird automatisch befüllt, sobald du den SubFlow auswählst. |
Welche SubFlow-Version läuft
Der Schritt merkt sich die Versionsnummer des SubFlows (siehe Flow-Code und Versionen). Eine Versionsnummer steht in jeder Company und Umgebung für denselben Stand des SubFlows – deshalb bleibt sie erhalten, wenn du den Flow als Vorlage hochlädst oder in eine Datei exportierst.
Gibt es die gemerkte Version dort, wo der Flow installiert ist, nicht – etwa weil der SubFlow dort auf einem anderen Stand ist –, nimmt der Schritt die aktive Version des SubFlows.
Eigene Symbole
Jeder SubFlow lässt sich auf der SubFlow-Karte mit einer eigenen Icon-URL konfigurieren. Ist sie gesetzt, erscheint dieses Symbol auf jedem SubFlow-ausführen-Schritt, der ihn aufruft – so erkennt ein Flow-Editor auf einen Blick „das ist der Validierungs-SubFlow“ oder „das ist der SubFlow zur Adressbereinigung“.
Die grüne Blockfarbe bleibt gleich – der Icon-Override ändert nur das Bild im Block.
Was du in einem SubFlow nicht tun kannst
- Schlafen / zeitbasiertes Aufschieben. Der aufrufende Flow wartet synchron – Pausieren würde ihn blockieren. Setze Schlafen nur im aufrufenden Flow vor oder nach dem SubFlow-ausführen-Schritt ein.
- Einen Schritt nach SubFlow-Output anhängen. Der Output-Schritt ist terminierend; der Publisher weist den Flow zurück, falls etwas folgt.
Fehler
Wenn der SubFlow eine Ausnahme wirft (Fehlerschritt oder ein anderer Fehlschlag), schlägt der aufrufende SubFlow-ausführen-Schritt mit einer Meldung der Form fehl:
Fehler in SubFlow "<name>": <ursprüngliche Meldung>
Die Transaktion wird zurückgerollt, einschließlich aller DB-Schreibvorgänge des SubFlows. Es gibt keinen halb angewandten Zustand, der aufgeräumt werden müsste.