B2Base – HowTo & Referenz

Kompakte Anleitung zum Erstellen von Workflows mit BPMN-Elementen in B2Base: Aufgaben, Dokumente und Daten strukturiert erfassen.

Stand: 12.08.2025

Schnellstart

  1. Start Event benennen → legt die Überschrift im UI fest.
  2. Task‑Knoten anlegen → erzeugt (Unter‑)Aufgaben per Hauptaufgabe > Unteraufgabe.
  3. Parallel Gateway → erfasst Formulareingaben über ausgehende Flows ({typ}[pfad][…]).
  4. Inclusive Gateway → fordert Datei‑Uploads an (Name = Gateway‑Name, optional %origin%).
  5. Exclusive Gateway → stellt Fragen mit Buttons; Text kann BBCode enthalten.
  6. Complex Gateway → trifft Entscheidungen (Zahlen‑ oder String‑Bedingungen).
  7. End Event → sendet alle gesammelten Daten an URL oder E‑Mail.
Tipp: Variablen $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

Start Event

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

Aufgabe

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

Skriptaufgabe (Script Task)

Manipuliert Aufgaben, Dateien oder JSON‑Daten.

BefehlWirkung
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

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

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.
Beispiel:
// Flow‑Name
{text}[bank][iban]

// Anmerkung
{IBAN}
{{DE\d{20}}}
{{{required}}}
Inklusives Gateway

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].pdf oder 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

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")
Hinweis: Beim Operator # gilt die Form links#rechtsrechts.includes(links). Das ist absichtlich asymmetrisch.
Intermediate Throw Event

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.
Intermediate Catch Event

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

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/api oder info@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 fetch gesendet.

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

  1. 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.
  2. „Schema verknüpfen“ wählen und ein Datenfeld auswählen.
  3. Eine Verbindung aus einem parallelen Gateway auswählen und „Als Formularfeld übernehmen“ wählen. Typ, Label und Feldregeln werden ergänzt.
  4. Alternativ einen Testwert eingeben, „Speicherung testen“ wählen und die geprüfte Regel in ein Zwischenereignis (Throw) übernehmen.
  5. 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

Brauchen Sie eine Auswahl? Schreiben Sie die Optionen in die Anmerkung untereinander. Ohne Optionen wird automatisch ein Eingabefeld erzeugt.

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.