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 Bausteine eines Flows
Abschnitt betitelt „Die Bausteine eines Flows“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) |
Einstiege: wie ein Flow startet
Abschnitt betitelt „Einstiege: wie ein Flow startet“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.
Die Erfassung: die Maske am Gerät
Abschnitt betitelt „Die Erfassung: die Maske am Gerät“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.
Verzweigen mit Gateways
Abschnitt betitelt „Verzweigen mit Gateways“Mit Gateways teilen Sie den Ablauf auf:
- Parallel (UND) — alle ausgehenden Zweige laufen gleichzeitig.
- Exklusiv (ODER) — genau ein Zweig läuft, je nach Bedingung.
Verbindungen aus Ressourcen
Abschnitt betitelt „Verbindungen aus Ressourcen“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.
Platzhalter
Abschnitt betitelt „Platzhalter“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 SchrittsAusführungs-Metadaten: {{meta|…}}
Abschnitt betitelt „Ausführungs-Metadaten: {{meta|…}}“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ührungWiederholungsblock: Listen je Eintrag ausgeben
Abschnitt betitelt „Wiederholungsblock: Listen je Eintrag ausgeben“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|rowsdie 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).
Live-Validierung
Abschnitt betitelt „Live-Validierung“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.
Flow testen
Abschnitt betitelt „Flow testen“Sie müssen einen Flow zum Testen nicht freigeben. Der Editor bringt ein Test-Overlay mit, das direkt über der Zeichenfläche läuft:
- Starten Sie den Test im Editor.
- 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.
- 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.
Versionen und Freigabe
Abschnitt betitelt „Versionen und Freigabe“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.
Sperre: Gesperrt / Entsperrt
Abschnitt betitelt „Sperre: Gesperrt / Entsperrt“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.
Wiederverwenden: Export, Import, Vorlagen
Abschnitt betitelt „Wiederverwenden: Export, Import, Vorlagen“- 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.
KI-Unterstützung (optional)
Abschnitt betitelt „KI-Unterstützung (optional)“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.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Verbindungen für die Datenschritte anlegen: Integrationen
- Freigegebene Flows über Profile auf die Geräte bringen: Geräte und Profile
- Wie ein Werker einen Flow am Gerät bedient: Flow wählen und starten
