Zum Hauptinhalt springen

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

  1. SubFlow ausführen wertet jede Eingabebindung im Kontext des aufrufenden Flows aus (Variablen, SmartFields, Konstanten).
  2. Die Engine startet die fixierte veröffentlichte Version des SubFlows in derselben Transaktion wie der aufrufende Flow. Dazwischen gibt es keine Commit-Grenze.
  3. Schritte innerhalb des SubFlows laufen synchron. Der aufrufende Flow wartet.
  4. 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 Typ Value erscheinen als Text-auf-der-Leitung-Variablen.
  5. 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

FeldFunktion
BeschreibungWird am Block im Editor angezeigt.
SubFlowWähle den aufzurufenden SubFlow. Der Lookup ist auf Flows mit SubFlow-Trigger gefiltert; andere Flows lassen sich nicht auswählen.
Fixierte VersionSchreibgeschützt. Wird beim Auswählen auf die veröffentlichte Version des SubFlows gesetzt. Der aufrufende Flow bleibt auch dann an diese Version gebunden, wenn der SubFlow später neu veröffentlicht wird – wähle ihn erneut, um zu aktualisieren.
Update verfügbarWird nur angezeigt, wenn der gewählte SubFlow eine neuere veröffentlichte Version als die fixierte hat. Wähle den SubFlow erneut, um sie zu übernehmen. Das Veröffentlichen wird dadurch nicht blockiert.
EingabebindungenEine 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.

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 synchronously – 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.