Zum Hauptinhalt springen

Veröffentlichen und Status von Unterabläufen

Unterabläufe – Zweige und Funktionen (FX) – sind interne Bestandteile ihres Aufrufers. Beim Veröffentlichen und in der Statusanzeige verhalten sie sich deshalb anders als normale Flows.

Veröffentlichen

Beim Veröffentlichen eines Flows wird für jede Verwendung eines Unterablaufs eine eigene Ausführungskopie erzeugt:

  • für jeden Zweig eines Bedingung (IF)-, Fehlerbehandlung (Try/Catch)- bzw. Change-Gate-Transferobjekts,
  • für jede Aufrufstelle einer Funktion (FX) – zehn Aufrufstellen derselben Funktion ergeben zehn Kopien.

Statische Variablenwerte des Aufrufers werden dabei fest in die Kopie eingesetzt; verdrahtete Variablen behalten ihre Platzhalter, weil sie pro Aufruf gefüllt werden. Die Kopien tragen einen systematischen Namen nach dem Muster <Flow> - <Schritt> - <Unterablauf-Name> (Scope). Die Laufzeit führt ausschließlich diese Kopien aus – die bearbeitbare Definition selbst wird nie direkt veröffentlicht. Änderungen an Zweigen oder Funktionen wirken daher erst mit dem nächsten Veröffentlichen des aufrufenden Flows (gestuftes Ausrollen wie bei Vorlagen-Instanzen); nach einer Änderung an einer Funktion zeigt der Veröffentlichen-Baum alle aufrufenden Flows als geändert an.

Darstellung im Veröffentlichen-Baum

Die Kopien erscheinen als schreibgeschützte Einträge (Würfel-Symbol) unterhalb ihres aufrufenden Flows, benannt nach ihrer Verwendung (z. B. „THEN: Temperatur > 80", „TRY", „ON OPEN" oder der Funktionsname) – mit eigener Änderungsmarkierung (hinzugefügt/geändert/unverändert):

  • Sie sind nicht einzeln auswählbar. Die Auswahl des aufrufenden Flows veröffentlicht seine Unterabläufe automatisch mit.
  • Ein Klick auf einen Eintrag öffnet die gewohnte Vorschau mit dem Unterschied zwischen Projektierung und Laufzeit.
  • Unterabläufe erscheinen nicht als normale Flows in den Ordnern des Baums.
  • Plug-in-Abhängigkeiten werden auch für Unterabläufe berücksichtigt: Verwendet ein Zweig ein Plug-in, das der Haupt-Flow selbst nicht nutzt, wird die Plug-in-Konfiguration beim Auswählen des Flows automatisch mitgewählt.
  • Der Befehl Änderungen produktiv schalten aus einem geöffneten Unterablauf heraus zeigt die Vorschau des Unterablaufs und wählt den zugehörigen Haupt-Flow zur Veröffentlichung aus.

Aufräumen

Entfällt eine Verwendung (z. B. Aufruf-Transferobjekt gelöscht oder auf eine andere Funktion umgestellt), wird die zugehörige Laufzeitkopie mit dem nächsten Veröffentlichen des aufrufenden Flows automatisch aus der Laufzeit entfernt.

Hinweis bei Aktualisierung von früheren 5.7-Vorabständen: Das erste Veröffentlichen nach der Aktualisierung kann einmalig Aufräum-Entfernungen älterer Kopien enthalten. Das ist beabsichtigt.

Status und Diagnose

Statusbaum

Unterabläufe erscheinen nicht als eigene Einträge im Statusbaum. Stattdessen zeigt der aufrufende Flow ein Zahlen-Badge, sobald einer seiner Unterabläufe Probleme meldet: Die Zahl nennt die Anzahl der Unterabläufe (Zweige, Funktionen) mit Fehlern oder Abbrüchen. Das Badge ist rot, sobald mindestens ein Unterablauf einen Fehler meldet, sonst gelb; der Tooltip erläutert die Bedeutung. Laufen alle Unterabläufe fehlerfrei, ist kein Badge sichtbar.

Transferdetails

In den Transferdetails des aufrufenden Flows zeigt das Aufrufer-Transferobjekt (Bedingung, Fehlerbehandlung bzw. Funktionsaufruf) die Diagnose des Aufrufs:

  • aufgerufenes Ziel und – beim IF und Try/Catch – ausgewählter sowie übersprungener Zweig,
  • beim Try/Catch die Liste der Versuche: jeder TRY-Versuch und jeder CATCH-Aufruf mit Ergebnis, Dauer und ggf. Fehlermeldung,
  • Ergebnisstatus und Dauer des Unterablauf-Transfers,
  • bei Fehlern die Fehlermeldung aus dem Unterablauf,
  • die Transferkontext-Id des Unterablauf-Laufs (kopierbar, für die Detailrecherche).

Ein Fehler im Unterablauf lässt den Transfer des aufrufenden Flows fehlschlagen; ein wegen fehlender Bedingung übersprungener Zweig gilt nicht als Fehler. Ebenso gilt ein Fehler im TRY-Zweig nicht als Fehler des Flows, wenn der CATCH-Zweig ihn behandelt oder er ohne CATCH-Zweig verschluckt wird – der Flow bleibt grün. Ob ein Fehler abgefangen wurde, melden die Status-Ausgänge des Try/Catch-Transferobjekts.

Unterablauf-Status im Diagramm öffnen

In der Statusansicht eines Flows trägt der Knoten des Aufrufers (Bedingung, Fehlerbehandlung bzw. Funktionsaufruf) eine Aktionsleiste, die das Ergebnis des Unterablaufs widerspiegelt:

  • Bedingung (IF): je eine Schaltfläche THEN öffnen und ELSE öffnen. Der im gewählten Transfer ausgeführte Zweig ist nach seinem Status eingefärbt (grün = erfolgreich, rot = Fehler/Zeitlimit, gelb = abgewiesen/Flow nicht bereit). Der nicht ausgeführte Zweig ist ausgegraut, lässt sich aber ebenfalls öffnen (Tooltip „Sub-Flow öffnen (in diesem Transfer nicht ausgeführt)").
  • Fehlerbehandlung (Try/Catch): ohne Wiederholung je eine Schaltfläche TRY öffnen und CATCH öffnen, jeweils nach dem Ergebnis des eigenen Zweig-Aufrufs eingefärbt – TRY bleibt also rot, auch wenn CATCH den Fehler behandelt hat. Mit aktivierter Wiederholung erscheint stattdessen die Schaltflächengruppe TRY | 1 … n mit einer Schaltfläche pro möglichem Versuch (grün = erfolgreich, rot = fehlgeschlagen, grau = nicht ausgeführt). Im Modus „Bei jedem fehlgeschlagenen Versuch" folgt eine Gruppe CATCH | 1 … n (Nummer = auslösender TRY-Versuch), sonst eine einzelne CATCH-Schaltfläche für den letzten CATCH-Aufruf. Beim Zeigen auf eine Schaltfläche erscheinen Ergebnis, Dauer und Fehlerdetails des Versuchs; jede Schaltfläche öffnet den Lauf ihres Versuchs in einem eigenen Reiter (z. B. „TRY #2 (Schritt 3)"), sodass sich Versuche nebeneinander vergleichen lassen.
  • Funktionsaufruf: eine Schaltfläche FB öffnen, eingefärbt nach dem Ergebnis des Aufrufs. Lief die Funktion im gewählten Transfer nicht (z. B. innerhalb eines übersprungenen Zweigs), ist die Schaltfläche ausgegraut und öffnet die projektierte Struktur.

Ein Klick auf eine Schaltfläche öffnet das schreibgeschützte Statusdiagramm des Unterablaufs als zusätzlichen Reiter unterhalb des Diagramms, benannt nach dem Unterablauf. Der Reiter:

  • zeigt den Lauf des Unterablaufs mit denselben Statusinformationen wie ein normaler Flow,
  • folgt dem im Aufrufer gewählten Transfer und aktualisiert sich live mit,
  • erlaubt das verschachtelte Aufschlüsseln – aus dem Statusdiagramm eines Unterablaufs öffnen Sie auf dieselbe Weise tiefer liegende Unterabläufe; der Titel nennt dann auch den übergeordneten Lauf (z. B. „THEN: … @ TRY #2"), und mit dem übergeordneten Reiter schließen sich die daraus geöffneten Reiter mit,
  • lässt sich über das × wieder schließen.

Wurde der Unterablauf im gewählten Transfer nicht ausgeführt (z. B. ein übersprungener ELSE-Zweig), zeigt der Reiter die projektierte Struktur ohne Laufdaten mit dem Hinweis „In diesem Transfer nicht ausgeführt".

Fehlerbehandlung (Try/Catch)-Knoten in der Statusansicht: Schaltflächengruppe TRY 1 bis 4 rot (fehlgeschlagene Versuche), CATCH grün, Transfer insgesamt erfolgreich

Geöffneter Versuchs-Reiter „TRY #2 (Step 2)&quot; unterhalb des Diagramms mit dem fehlgeschlagenen TRY-Zweig aus Scope-Eingang, Formel &amp; Taschenrechner und Scope-Rückgabe

Zeitlimit und Parallelität

Pro Aufruf gilt das Zeitlimit von 30 Sekunden. Bei Überschreitung schlägt der Transfer des Aufrufers fehl und der Unterablauf wird abgebrochen, bevor der nächste Aufruf startet. Pro Ausführungskopie läuft immer höchstens ein Aufruf gleichzeitig; parallele Aufrufstellen derselben Funktion arbeiten dank eigener Kopien unabhängig voneinander.