Zum Inhalt springen

Flows erstellen

Diese Seite beschreibt Version 1.3. Zur neuesten Version wechseln.

Ein Flow ist ein grafischer Ablauf aus einzelnen Schritten. Er beschreibt, was passiert, wenn ein Vorgang startet: welche Daten erfasst, gelesen, verarbeitet und wohin sie geschrieben werden. Sie bauen Flows im Flow-Editor, den Sie über Prozesse → Flow-Definitionen öffnen.

Die Darstellung ist BPMN-basiert: Ein Flow läuft von einem Startpunkt über verbundene Schritte zu einem Endpunkt. Die Schritte ziehen Sie per Drag-and-drop aus einer Palette auf die Zeichenfläche und verbinden sie zu einem Ablauf.

Die Palette enthält alle Schritt-Typen. Die folgende Übersicht gruppiert sie nach Aufgabe.

Gruppe Schritt-Typ Wofür
Rahmen Start, Ende Anfang und Abschluss des Ablaufs
Einstiege REST-Start Start über einen REST-Aufruf (synchron oder asynchron)
Einstiege Datei-Start Start, sobald in einem überwachten Ordner eine Datei erscheint
Einstiege Message-Start Start über eine eingehende Nachricht (MQTT/JMS)
Einstiege Zeitplan-Start Start zu festgelegten Zeiten oder in festen Intervallen innerhalb eines Zeitfensters
Einstiege OPC UA Start Start durch ein Ereignis an einer Maschine (OPC UA)
Erfassen Erfassung mobile Erfassungsmaske, die Werker am Gerät ausfüllen
Daten DB Quelle, DB Ziel aus einer Datenbank lesen bzw. in sie schreiben (grafischer Query-Builder)
Daten Datei-Ziel Datei schreiben (CSV oder Vorlage; lokal, SMB, FTP, SFTP)
Daten API-Aufruf externen Dienst aufrufen (REST/SOAP, Operationskatalog)
Daten REST-Antwort Antwort an den Aufrufer zurückgeben (nur in synchronen REST-Flows)
Senden E-Mail senden eine E-Mail versenden
Senden Nachricht senden eine Nachricht ausgeben (MQTT/JMS)
Verarbeiten Script eigene Logik in JavaScript (ohne Netz- und Dateizugriff)
Verarbeiten KI-Task Verarbeitung durch ein Sprachmodell mit Prompt und strukturierten Ausgabefeldern
Maschinen OPC UA Lesen, OPC UA Schreiben Werte an einer Maschine lesen oder schreiben
Verzweigen Parallel (UND), Exklusiv (ODER) Ablauf aufteilen und wieder zusammenführen (Gateways)

Jeder Flow hat genau einen Einstieg. Von jedem Einstiegs-Typ ist höchstens einer pro Flow erlaubt. Der Einstieg bestimmt den Auslöser:

  • Der REST-Start kann synchron (der Aufrufer wartet auf eine Antwort) oder asynchron (der Aufrufer erhält nur eine Bestätigung) arbeiten.
  • Datei-Start und OPC UA Start sind dauerhaft laufende Auslöser: Sie beobachten fortlaufend einen Ordner bzw. eine Maschine.

Ohne einen Erfassungs-Einstieg entsteht ein Flow, den kein Werker am Gerät antippt — er läuft automatisch, sobald sein Auslöser feuert.

Der Schritt Erfassung ist der Teil, den die Werker am Gerät sehen und ausfüllen. Er verweist auf eine Mobile Page — die eigentliche Eingabemaske mit ihren Feldern (scannen, tippen, auswählen, Foto und mehr). Für die Auswahlfelder greifen Masken auf Auswahllisten zurück: globale Wertelisten, die Sie zentral unter Konfiguration pflegen.

Mit Gateways teilen Sie den Ablauf auf:

  • Parallel (UND) — alle ausgehenden Zweige laufen gleichzeitig.
  • Exklusiv (ODER) — genau ein Zweig läuft, je nach Bedingung.

Schritte, die mit der Außenwelt sprechen — Datenbank, E-Mail, HTTP, Datei, Messaging, OPC UA, KI — beziehen ihre Verbindungsdaten nicht aus dem Flow selbst, sondern aus dem Bereich Ressourcen. Dort legen Sie eine Verbindung einmal an; im Flow-Schritt wählen Sie sie nur noch aus. Wie Sie Ressourcen einrichten, beschreibt das Kapitel Integrationen.

Viele Textfelder eines Schritts — Betreff und Inhalt einer E-Mail, der Inhalt einer Datei, der Body eines API-Aufrufs, ein KI-Prompt — enthalten Platzhalter, die bei der Ausführung durch Werte aus vorgelagerten Schritten ersetzt werden. Sie fügen Platzhalter über den Button + Platzhalter ein; der Dialog führt Sie von der Quelle (ein vorgelagerter Schritt, Datum/Uhrzeit oder Meta-Information) zum Feld und optional zu einem Format. Im Feld erscheint der Platzhalter als farbiger Chip; ein Klick auf den Chip öffnet ihn erneut zum Bearbeiten.

Ein paar Beispiele in der Roh-Schreibweise (sichtbar über den Schalter Roh-Text bearbeiten):

{{Erfassung|mobilePageData[componentName='Menge']/value}} Wert eines Maskenfelds
{{Lesen|rows[1]/produkt}} Spalte der ersten Zeile einer DB Quelle
{{Lesen|rowCount}} Anzahl gelesener Zeilen
{{Lesen|rows[1]/preis:#,##0.00}} mit Zahlenformat
{{datetime:dd.MM.yyyy HH:mm}} aktuelles Datum mit Format
{{meta|userId}} Benutzer des aktuellen Schritts

Neben Schritten und Datum/Uhrzeit gibt es als Quelle meta: Informationen zur laufenden Ausführung, die in jedem Schritt verfügbar sind — unabhängig davon, welche Schritte zuvor gelaufen sind.

Im Dialog Feld Bedeutung Beispiel
Benutzer userId Benutzer des aktuellen Schritts — bei automatischen Schritten „SYSTEM“ tom
Gerät deviceId Gerät des aktuellen Schritts — nur bei einer Erfassung befüllt PDA-07
Flow-ID flowId ID der Flow-Definition 42
Flow-Name flowName Name des Flows Wareneingang
Instanz-ID processExecutionId ID der laufenden Ausführung (Instanz), eine UUID 3f9c1a7e-…
Zeitstempel timestamp Zeitpunkt der Ausführung — ohne Format im Standardformat wie {{datetime}}, mit Format z. B. `{{meta timestamp:dd.MM.yyyy HH:mm}}`
{{meta|flowName}} Name des Flows
{{meta|timestamp:dd.MM.yyyy HH:mm}} Zeitpunkt mit Format
{{meta|processExecutionId}} ID der laufenden Ausführung

Liefert ein Schritt eine Liste — alle Zeilen einer DB Quelle, eine Listen-Ausgabe eines API-Aufrufs, ein Listenfeld eines KI-Tasks oder das aktuelle Element einer Schleife, sofern es selbst eine Liste ist — können Sie je Eintrag eine eigene Zeile gestalten, statt die Liste als Ganzes einzusetzen. Dazu dient der Wiederholungsblock: Er ist an eine Liste gebunden, trägt einen Namen und enthält eine Vorlage, die für jeden Eintrag wiederholt wird. Innerhalb der Vorlage sprechen Sie die Felder des aktuellen Eintrags über den Blocknamen an — genau wie einen Schritt.

So sieht ein Block im Roh-Text aus (Textfeld, z. B. Datei-Inhalt oder Betreff):

Folgende Positionen sind offen:
{{#Position in Lesen|rows}}{{Position|@nr}}. {{Position|produkt}} – bestellt {{Position|bestellt}}, verfügbar {{Position|verfuegbar}}
{{#leer}}keine offenen Positionen
{{/Position}}
  • {{#Position in Lesen|rows}} öffnet den Block: Position ist der frei gewählte Name, Lesen|rows die Liste (hier: alle Zeilen des Schritts „Lesen“).
  • Alles bis {{/Position}} wird je Eintrag einmal ausgegeben — exakt so, wie es im Block steht. Möchten Sie eine Zeile pro Eintrag, setzen Sie den Zeilenumbruch in den Block; für eine kommagetrennte Aufzählung lassen Sie ihn weg.
  • {{Position|produkt}} ist ein Feld des aktuellen Eintrags; Formate funktionieren wie überall ({{Position|preis:#,##0.00}}).
  • Sonderfelder je Eintrag: {{Position|@nr}} (laufende Nummer ab 1), {{Position|@anzahl}} (Anzahl aller Einträge), {{Position|@wert}} (der ganze Eintrag).
  • {{#leer}} leitet einen optionalen Alternativtext ein, der statt des Blocks erscheint, wenn die Liste leer ist. Ohne diesen Abschnitt entfällt der Block einfach — ein Fehler entsteht nicht.

Blöcke lassen sich verschachteln: Ein innerer Block kann ein Listenfeld des äußeren Eintrags durchlaufen (etwa die Positionen eines Auftrags) und dabei weiterhin auf die Felder des äußeren Eintrags zugreifen.

Im Platzhalter-Dialog müssen Sie die Schreibweise nicht kennen: Wählen Sie eine Liste als Feld (etwa Ganze Tabelle · alle Zeilen einer DB Quelle oder eine Listen-Ausgabe eines API-Aufrufs) und schalten Sie Als Wiederholungsblock einfügen ein. Sie vergeben den Namen, optional den Text für eine leere Liste und wählen die Felder des Eintrags aus; der Dialog fügt Blockanfang, eine Standardzeile und Blockende als Chips ein. Innerhalb des Blocks bietet der Dialog den Blocknamen als Quelle mit den Feldern des Eintrags an.

Im E-Mail-Editor wählen Sie zusätzlich die Darstellung: Absatz je Eintrag, Aufzählungspunkt je Eintrag oder Tabelle mit einer Kopfzeile aus den gewählten Spalten und einer Zeile je Eintrag. Der wiederholte Bereich ist farbig markiert und frei editierbar. Steht der Cursor in einem Block, öffnet der Toolbar-Button Wiederholung die Bearbeitung der Quelle und des Leer-Texts oder löst den Block auf (der Inhalt bleibt erhalten).

Der Editor prüft den Flow fortlaufend. Fehlerhafte Stellen werden direkt auf der Zeichenfläche markiert; ein Tooltip erklärt jeweils, was fehlt. Typische Fälle:

  • eine unvollständige Konfiguration eines Schritts,
  • Verstöße gegen die Regeln synchroner REST-Flows (etwa eine fehlende REST-Antwort),
  • ins Leere zeigende Platzhalter-Referenzen und fehlerhafte Wiederholungsblöcke,
  • Typkonflikte in Bedingungen an einem Exklusiv-Gateway.

So sehen Sie Probleme, während Sie bauen, statt erst bei der Freigabe.

Sie müssen einen Flow zum Testen nicht freigeben. Der Editor bringt ein Test-Overlay mit, das direkt über der Zeichenfläche läuft:

  1. Starten Sie den Test im Editor.
  2. Je nach Einstieg füllen Sie die Start-Maske wie am Gerät aus oder nutzen ein Testformular für den REST-, Datei-, Message- oder Zeitplan-Start.
  3. Der Test zeigt die Live-Ausführung als Statusgraph mit den Schritt-Details — welcher Schritt gerade läuft und mit welchen Daten.

Den Editor verlassen Sie dafür nicht.

Ein Flow durchläuft Versionen mit klaren Status:

In Arbeit → Freigegeben → Archiviert

  • Sie arbeiten immer an einer Version In Arbeit.
  • Mit der Freigabe wird sie zur aktiven Version. Nur freigegebene Flows erscheinen auf den Geräten.
  • Bei einem bereits freigegebenen oder veralteten Flow öffnet die Schaltfläche Neue Version bearbeiten die vorhandene Arbeitsversion oder legt — nach einem Kommentar-Dialog — eine neue an, genau wie der Stift in der Flow-Liste. Ein Änderungskommentar ist beim Anlegen einer Arbeitsversion Pflicht. Die freigegebene Version bleibt aktiv, bis Sie die neue freigeben.
  • Speichern öffnet den Dialog „Flow speichern“ mit dem Änderungskommentar der Version — vorbelegt, jederzeit anpassbar, darf leer bleiben. „Testen“ und der Wechsel in den Mobile-Page-Editor speichern dagegen ohne Rückfrage. In den Flow-Kopfdaten steht der Kommentar nur noch zur Ansicht.
  • Die Freigabe verlangt den Änderungskommentar als Pflichtfeld und zeigt darunter die Änderungen gegenüber der zuletzt freigegebenen Version. Ohne Kommentar ist keine Freigabe möglich. Nach der Freigabe ist der Kommentar unveränderlich.
  • Über die Versionshistorie sehen Sie alle früheren Stände: den Kommentar, „Erstellt am … von …“ bzw. „Freigegeben am … von …“ sowie die Schaltfläche Änderungen. Sie öffnet die automatisch ermittelte Übersicht gegenüber der direkten Vorgängerversion, gruppiert nach Flow-Eigenschaften, Knoten, Verbindungen, Notizen, Mobile Pages, Seitenelementen und Anhängen; bei geänderten Elementen sehen Sie die betroffenen Eigenschaften.

Unabhängig von der Versionierung gibt es die Sperre. Wird eine Flow-Definition ungültig, kann das System sie sperren (Zustand Gesperrt), damit sie keinen Schaden anrichtet. Nach Behebung der Ursache entsperren Sie sie wieder (Entsperrt). Sperre und Version sind zwei getrennte Dinge: Ein Flow kann freigegeben und trotzdem gesperrt sein.

  • Export / Import als .pf-Datei — einen Flow aus einem System heraus- und in ein anderes hineinladen, etwa von einer Test- in eine Produktivumgebung. Ressourcen werden beim Import per Name + Typ aufgelöst; für jede nicht gefundene Referenz wählen Sie im Import-Dialog eine vorhandene Ressource desselben Typs aus oder legen über „Neue Ressource anlegen…“ eine neue an. Erst wenn alle Referenzen zugeordnet sind, ist „Importieren“ aktiv.
  • Duplizieren — einen bestehenden Flow als Ausgangspunkt für einen neuen kopieren.
  • Vorlagen — von vorgefertigten Bauplänen ausgehen, statt bei null zu beginnen.

Wenn eine KI-Ressource konfiguriert ist, unterstützt Sie ProcessFlow beim Bauen von Flows. Ist keine KI-Ressource eingerichtet, sind diese Funktionen ausgeblendet.

  • Mit KI erstellen — auf der Seite Flow-Definitionen: Aus einer Beschreibung erzeugt die KI einen Flow und legt ihn als Arbeitsversion an.
  • KI-Assistent im Editor — mit den Modi bearbeiten und Validierungsfehler beheben. Der Vorschlag wird erst nach Ihrer Bestätigung übernommen.
  • Rückfragen zu Ressourcen — Braucht ein vorgeschlagener Schritt eine Ressource (E-Mail, Datenbank, …), fragt der Assistent nach und zeigt die Ressourcen-Auswahl mit den vorhandenen Ressourcen des Typs und dem Eintrag „Neue Ressource anlegen…“. Der Eintrag öffnet die normale Ressourcen-Maske; Zugangsdaten geben Sie nur dort ein, nie im Chat. Die gewählte oder neu angelegte Ressource verwendet der Assistent direkt weiter.
  • Regex-Assistent — hilft bei regulären Ausdrücken, etwa für Prüfregeln in Feldern.
  • SQL-Assistent — unterstützt im grafischen Query-Builder der Datenbank-Schritte beim Formulieren von Abfragen.

Anbieter, Modell, Budget und eine Nutzungsübersicht stellen Sie unter Konfiguration → KI-Assistent ein.