Business-Regeln
Workflow | Business-Regeln
Mit den Business-Regeln (oder auch Businessrules) ist es möglich einen Workflow aufgrund bestimmter Bedingungen zu starten oder Prozessschritte aufgrund eines Ereignisses beim Ausführen des Workflows zu starten.
Ein Techniker schließt einen Arbeitsbericht zu einem Serviceauftrag. In dem Moment soll der Bereichsleiter eine Aufgabe erhalten diesen Arbeitsbericht / Auftrag / Einsatz zu prüfen. Die Entscheidung welcher Bereichsleiter informiert werden soll stammt aus den Business-Rules.
Eine Business-Regel wird in den Workflow-Prozessen einen Task vom Typ BusinessRuleTask zugewiesen.
Business-Regeln lassen sich in der Ansicht 'Tabelle' oder direkt als Skript im Editor im Ansicht 'Code' anlegen.
Bei der Erstellung einer Business-Regel in der Tabellenansicht wird diese intern in einen Skript-Code umgewandelt, dabei wird die Script-Sprache esExpression-Language (ESEL) verwendet.
Nicht alle Business-Regeln lassen sich in der Tabellenansicht abbilden, bei komplexen Regeln können diese direkt im Code-Editor eingegeben werden.
Bereich 'Regeln'
In dieser Auflistung sehen Sie alle bereits angelegten Business-Regeln. Die in der Liste ausgewählte Regel kann in der Ansicht 'Tabelle' oder der Ansicht 'Code' bearbeitet werden. Die Anzeigen in dem Bereich 'Fehler' und dem Bereich 'Test' beziehen sich immer auf die hier markierte Business-Regel.
Ansicht 'Tabelle'
In der Tabellenansicht können einfache Regeln erstellt werden.
Zum Anlegen einer neuen Business-Regel klicken Sie auf die Schaltfläche Regel hinzufügen. Ist die Schaltfläche nicht auswählbar (ausgegraut), klicken Sie zunächst auf die Schaltfläche Bearbeiten.
Name der Business-Regel
Vergeben Sie in der obersten Zeile ( Stiftsymbol) eine eindeutige Bezeichnung für die Business-Regel, der Name wird in der Auflistung im Bereich Regeln angezeigt. Über diesen Namen wird die Business-Regel auch in den Workflow-Prozessen einem Task zugewiesen.
Eingabe / Ausgabe
Für eine Business-Regel ist die Definition mindestens einer Eingabe und einer Ausgabe erforderlich.
Eingabe
Klicken Sie auf die -Schaltfläche um einen Eingabe-Parameter anzulegen. Vergeben Sie einen eindeutigen sprechenden Namen für den Parameter.
In den Tabellenzeilen unter dem Parameter können nun mögliche Eingangswerte definiert werden, die mit der Regel in einen Ausgangswert ersetzt werden sollen.
Bei den Eingangswerten kann es sich um Konstanten handeln, es können auch Formeln und logische Ausdrücke verwendet werden.
Ausgabe
Klicken Sie auf die -Schaltfläche um einen Ausgabe-Parameter zu definieren. Vergeben Sie einen eindeutigen sprechenden Namen für den Parameter. Bei der Zuordnung einer Business-Regel zu einem Workflow ist es erforderlich, dass dieser Parameter zuvor unter Workflow | Prozesse | Details - ProzessVariablen definiert worden ist.
In den Tabellenzeilen unter dem Parameter definieren Sie nun mögliche Ausgabewerte, als Ergebnis des rechts stehenden Eingangswertes.
Ansicht 'Code'
In der Code-Ansicht wird eine Business-Regel als Skript ausgegeben. Sie können einfache Regeln in der Ansicht 'Tabelle' anlegen und diese dann in der Code-Ansicht weiter bearbeiten.
Als Script-Sprache wird die esExpression-Language (ESEL) verwendet.
Informationen zur esExpression-Language (ESEL)
Für allgemeine Anwendungsfälle wird im eserp eine Allgemeine Script-Sprache Namens esExpression-Language (ESEL) verwendet. Für die Verwendung in Workflow-Prozessen (BusinessRuleTasks und ScriptTasks) ist diese erweitert worden.
Für Ausdrücke innerhalb eines Workflow-Diagramms, zum Beispiel für die Auswertung von Exclusive-Gateways werden ESRL-Expressions verwendet, welche eine Erweiterung von ESEL sind und als Grundlage für ESRL (esRule-Language) dienen, welche wiederum für die Business-Regeln und Script-Tasks verwendet wird.
ESEL (ES-Expression-Language)
Typen
Typ |
Erklärung |
---|---|
true false |
Bool (Ja / Nein) |
[Tabelle.Feld] |
Felder / Variablen |
#1490165557 |
DateTime (Die Zahl ist ein Unix-Timestamp) |
"Zeichenkette" |
Zeichenketten |
13.37 |
Nummern |
Unäre Ausdrücke
Ausdruck |
Erklärung |
---|---|
~Wert |
Bit-NOT |
-Wert |
Minus (vor Zahlen) |
!Wert |
Logisches-NOT |
Binäre Ausdrücke
Ausdruck |
Erklärung |
---|---|
A & B |
Bit-AND |
A | B |
Bit-OR |
A ^ B |
Bit-XOR |
A / B |
Dividieren |
A % B |
Modulo |
A * B |
Multiplizieren |
A + B |
Addieren |
A - B |
Subtrahieren |
A and B |
Logisches-AND |
A or B |
Logisches-OR |
Funktionen
Es sind je nach Umgebung verschiedene Funktionen verfügbar.
Diese können über FunktionsName(Argument1[, ...ArgumentN]) aufgerufen werden.
Bedingungen
CASE
WHEN (Bedingung) THEN (Wert)
[WHEN (Bedingung 2) THEN (Wert 2)]
[ELSE (Nein-Wert)]
END
ESRL-Expressions
Die ESRL-Expressions entsprechen den ESEL-Expression haben aber eine Erweiterung: Es ist möglich, die unter Workflow | Business-Regeln definierte Business-Regeln aufzurufen.
Wenn eine einfache Regel ohne Parameter aufgerufen werden soll, wird dies wie folgt erledigt.
<MinimaleAngebotssumme>
Wenn zusätzliche Parameter an die Regel übergeben werden sollen, werden diese 'Objekte' übergeben und der Syntax ist wie folgt:
<IsMaxOfferSumAllowed of { Kalkulator: [mein Kalkulator], Angebot: [mein Angebot] } >
Objekte werden mit { Name: Wert, Name2: Wert2, Name3... } angegeben.
ESRL wird verwendet, um Business-Regeln aufzustellen.
ESRL
Um diese Regeln zu definieren, wird folgender Syntax verwendet:
GIVEN Parameter1, Parameter2 (HAVE oder HAS) NameDerRegel OF
(Code)
Also zum Beispiel
GIVEN Wert1, Wert2 HAVE SUM OF [Wert1] + [Wert2]
Wenn mehrere Werte zurückgegeben werden sollen, können die Namen der Ausgabe Parameter nach dem Namen der Regel mit Doppelpunkt angegeben werden.
zum Beispiel
GIVEN a, b HAVE Rechteck: Umfang, Flaeche OF
{Umfang: (2 * ([a]+[b])), Flaeche: [a]*[b] }
Regeln bieten zusätzlich die Möglichkeit, mehrere Befehle hintereinander auszuführen.
Diese Blöcke werden mit START und END gekennzeichnet. Einzelne Befehle werden mit Semikolon voneinander getrennt. Der letzte Befehl endet also nicht mit Semikolon.
Regeln, die über mehrere Befehle verfügen, können mittels RETURN die weitere Ausführung der Regel frühzeitig beenden.
Zusätzlich ist es möglich sich eigene Variablen innerhalb der Regel zu definieren, um Werte wiederzuverwenden. Dazu muss man einfach einem Bezeichner einen Wert mittels := zuweisen.
Ein etwas komplexeres Beispiel könnte wie folgt aussehen:
GIVEN Wert HAS Beispiel OF
START
Teilwert := [Wert] / 2.5; // Wert durch 2,5 teilen
WHEN [Teilwert] > 10 THEN
RETURN "Wert ist zu groß";
rechteck := <Rechteck of { a: [Teilwert], b: [Wert] }>;
RETURN [rechteck.Umfang]
END
Bei Script-Tasks können gegebenenfalls freigegebene Business-Funktionen genauso aufgerufen werden wie andere Business-Regeln.
Bereich 'Fehler'
In diesem Bereich werden Fehler angezeigt, die bei der Eingabe der Business-Regel entstanden sind (zum Beispiel Syntax-Fehler) oder die beim Prüfen der Business-Regel im Bereich 'Test' aufgetreten sind.
Bereich 'Test'
Im Bereich Test kann die erstellte Business-Regel mit einer manuellen Eingabe getestet werden. So kann geprüft werden, ob das erstellte Skript die Werte, die es als Eingabe vom Workflow-Prozess erhält, auch korrekt verarbeitet und entsprechende Ausgaben für weitere Workflow-Prozesse bereitstellt.
Mögliche Fehler in der Verarbeitung der Businessregel werden im Bereich 'Fehler' angezeigt.
Ein vollständiger Test der Business-Regeln kann nur beim Ausführen des kompletten Workflows durchgeführt werden.