Schnellstart
- Start Event benennen → legt die Überschrift im UI fest.
- Task‑Knoten anlegen → erzeugt (Unter‑)Aufgaben per
Hauptaufgabe > Unteraufgabe. - Parallel Gateway → erfasst Formulareingaben über ausgehende Flows (
{typ}[pfad][…]). - Inclusive Gateway → fordert Datei‑Uploads an (Name = Gateway‑Name, optional
%origin%). - Exclusive Gateway → stellt Fragen mit Buttons; Text kann BBCode enthalten.
- Complex Gateway → trifft Entscheidungen (Zahlen‑ oder String‑Bedingungen).
- End Event → sendet alle gesammelten Daten an URL oder E‑Mail.
$foo und JSON‑Pfade [key][sub] werden an vielen Stellen automatisch aufgelöst.Kernkonzepte
Variablen
Mit $name. Nicht gesetzte Variablen werden zu 0. In internen Operationen (z. B. Catch‑Event) können Werte berechnet oder inkrementiert werden.
$i++
$summe = $a + 4
$iban = 'DE' + $zahl
JSON‑Pfade
Pfade im Format [kunde][name] (auch Arrays: [positionen][0][preis]). In Fließtexten werden Vorkommen automatisch ersetzt; bei Zuweisungen sind nur Pfadangaben in […] zulässig.
BBCode (Fragen/Anmerkungen)
Unterstützt: [b], [i], [u], [url], [img], [color], [size], [list], [list=1|a], [*].
Dezimalzahlen
Der Eingabetyp {double} akzeptiert Komma (123,45) im UI, wird intern als Zahl mit Punkt gespeichert.
BPMN‑Elemente in B2Base

Start Event
Legt einmalig die Überschrift des Workflows fest (nur Text).

Aufgabe (Task)
Erzeugt Einträge in der Aufgabenliste. Existiert der Eintrag bereits auf gleicher Ebene, wird er nicht dupliziert.
- Variablen:
Aufgabe $i von $a - JSON‑Daten:
Aufgabe für [benutzer][name] - Hierarchie:
Haupt > Unter > Teil

Skriptaufgabe (Script Task)
Manipuliert Aufgaben, Dateien oder JSON‑Daten.
| Befehl | Wirkung |
|---|---|
del_task(taskName) | Entfernt eine konkrete Aufgabe (exakte Übereinstimmung). |
del_task() | Leert die gesamte Aufgabenliste. |
del_file(fileName) | Löscht eine Datei aus der Liste. |
del_file() | Entfernt alle Dateien. |
del_data([pfad][…]) | Löscht Daten am Pfad (Array‑Index möglich). |
del_data() | Setzt das JSON‑Objekt komplett zurück. |

Exklusives Gateway
Stellt eine Frage; jede ausgehende Sequenz erzeugt einen Button. Nutzer wählt genau einen Weg.
- Gateway‑Name: Frage (Variablen & JSON‑Pfade werden aufgelöst; BBCode erlaubt).
- Buttons: Name der ausgehenden Flows wird als Buttontext verwendet (ohne Namen → Pfeilsymbol).
- Anmerkung am Gateway: Wenn der Annotationstext eine URL oder E‑Mail enthält, werden alle bisher gesammelten Daten dorthin gesendet. Andernfalls wird der Untertitel im UI gesetzt.
- Favoriten‑Logik: Befindet sich auf dem folgenden Pfad ein Intermediate Throw Event mit Zuweisung
[pfad]=wert, und stimmt der aktuelle JSON‑Wert exakt, wird der zugehörige Button visuell hervorgehoben.

Paralleles Gateway (Formularfelder)
Jeder ausgehende Flow erzeugt ein Formularfeld. Nach Senden wird gespeichert und dem definierten nächsten Element gefolgt.
Flow‑Name (Syntax)
{typ}[pfad][im][json]
Typen: {text}, {number}, {double}, {date}, {email} …
Anmerkung am Flow (optional)
- Label: reine Zeile oder in
{…}, wenn weitere Angaben folgen. - Pattern:
{{…}}(RegEx, z. B. IBAN). - Pflichtfeld:
{{{required}}}. - Auswahlliste: Jede weitere Zeile ⇒ Option (Select). Der gespeicherte Wert ist der sichtbare Text.
// Flow‑Name
{text}[bank][iban]
// Anmerkung
{IBAN}
{{DE\d{20}}}
{{{required}}}

Inklusives Gateway (Datei‑Uploads)
Fordert eine Datei an (z. B. PDF). Der gewünschte Dateiname ist der Gateway‑Name (mit Variablen/JSON möglich).
- Dateiname:
Rechnung_[kunde][name].pdfoder mit%origin%(verwendet Original‑Basename). - Ersetzen: Existiert eine Datei mit demselben Zieldateinamen, wird sie überschrieben.
- Skip: „Überspringen“ erzeugt – falls vorhanden – eine Aufgabe aus der Anmerkung am Gateway.

Komplexes Gateway (Bedingungen)
Wertet eine Bedingung aus und folgt dem Flow true bzw. false.
Numerisch
[kunde][alter] >= 18
$a + 5 < $b
String
a=b // Gleichheit (exakt)
a#abc // enthält (prüft: "abc" enthält "a")
# gilt die Form links#rechts ⇒ rechts.includes(links). Das ist absichtlich asymmetrisch.
Zwischenereignis (Throw)
Aktualisiert das JSON oder setzt den Untertitel.
- Zuweisung:
[pfad][…] = wert(Variablen & Pfade erlaubt). Mit Typ:{integer}[kunde][alter] = 21,{boolean}[kunde][aktiv] = true,{string}[adresse][plz] = "01234". - Nur Text: Wird als Untertitel im UI angezeigt.

Zwischenereignis (Catch / intern)
Interne Operationen (beliebiges Symbol). Unterstützt geprüfte Rechen- und Textausdrücke ohne JavaScript-Ausführung. Operatoren: + - * / % ^, Klammern und abs, round, floor, ceil, sqrt, min, max, pow, pi.
$i++
$sum = $x + 3
$msg = 'Hallo ' + $name

End Event
Beendet den Workflow und löst das Speichern/Übermitteln der Daten aus.
- Name (Ziel): URL oder E‑Mail (z. B.
https://example.com/apioderinfo@example.com). - Übermittlung: FormData inkl. Aufgabenliste, JSON, Stil und Dokumente (Dateien als Base64).
- UI: Während der Übertragung wird ein Spinner angezeigt; bei URL in Anmerkungen/Fragen wird „silent“ via
fetchgesendet.
Syntax‑Cheatsheet
Aufgaben
Haupt > Unter > Teil
Aufgabe $i für [kunde][name]
Formularfelder
{text}[adresse][strasse]
{double}[preis]
// Anmerkung
{Straße}
{{{required}}}
Dateien
Rechnung_[kunde][nr].pdf
Angebot_%origin%.pdf
Bedingungen
[summe] > 0
x=y
x#xyz
JSON‑Update
[bank][name] = DKB
[kunde][aktiv] = true
[positionen][0][menge] = 2
Interne Operationen
$i++
$total = $netto * 1.19
$greet = 'Hi ' + $user
Assistenten im Workflowdesigner
Wählen Sie ein Element oder dessen Beschriftung auf der Zeichenfläche. Der Bereich Element bearbeitet Name und Anmerkung. Logik erstellt Vergleiche und testet sie mit JSON-Daten, bevor sie in ein komplexes Gateway übernommen werden. RegEx bietet Vorlagen, Testeingaben und Fehlerhinweise; eine Zeitgrenze verhindert blockierende Tests.
Schema mit dem Workflow verknüpfen
- Im Bereich Schema ein JSON Schema per URL laden, als Datei öffnen oder einfügen. Für reine Beispieldaten ausdrücklich „JSON-Beispiel“ auswählen.
- „Schema verknüpfen“ wählen und ein Datenfeld auswählen.
- Eine Verbindung aus einem parallelen Gateway auswählen und „Als Formularfeld übernehmen“ wählen. Typ, Label und Feldregeln werden ergänzt.
- Alternativ einen Testwert eingeben, „Speicherung testen“ wählen und die geprüfte Regel in ein Zwischenereignis (Throw) übernehmen.
- Das Diagramm speichern. Schema und Quelle bleiben im BPMN enthalten; „Schema-Verknüpfung lösen“ entfernt die Zuordnung wieder.
Die Prüfung gilt für verwendete Felder und unterstützt unter anderem Typen, Pflichtangaben, Zahlenbereiche, Zeichenlängen, Auswahlwerte und Muster. Sie ist keine vollständige Prüfung des gesamten JSON-Dokuments. Nicht aufgelöste Kombinationen und externe Referenzen werden angezeigt. Schema-URLs benötigen CORS; als Alternative können Sie den Inhalt einfügen oder eine Datei öffnen.
Best Practices
- Konsistente Pfade: Verwenden Sie sprechende JSON‑Pfade (
[kunde][adresse][plz]statt[k][a][p]). - Eindeutige Dateinamen: Bauen Sie Schlüsselwerte ein (
Rechnung_[kunde][nr].pdf), um Überschreibungen bewusst zu steuern. - Validierung nutzen: RegEx‑Pattern und
{{{required}}}sparsam, aber gezielt einsetzen. - Dezimaltrennzeichen:
{double}akzeptiert Komma – speichern Sie numerisch, nicht als Text. - Buttons benennen: Klare, kurze Namen erhöhen die Verständlichkeit der Entscheidungen.
FAQ & Stolperfallen
Warum markiert ein Button sich als „Favorit“?
Wenn im folgenden Pfad ein Throw‑Event den Wert [pfad]=wert setzt und der aktuelle JSON‑Wert exakt übereinstimmt, erhält der zugehörige Button eine Hervorhebung.
„Enthält“ funktioniert anders als erwartet
Die Form a#b prüft, ob b die Teilzeichenkette a enthält (b.includes(a)), nicht umgekehrt.
Wie werden E‑Mails/URLs erkannt?
In Anmerkungen zu Gateways oder im End‑Event‑Namen. Wird ein valider Treffer gefunden, werden die gesammelten Daten dorthin übertragen.
Umlaute/Encoding
Diese Anleitung nutzt UTF‑8. Achten Sie in Ihren BPMN‑Dateien ebenfalls auf UTF‑8, um „�“‑Zeichen zu vermeiden.