X4 Produktdokumentation

Rule

image-20241001-091414.png

Mit Rule-Bausteinen bilden Sie Regeln für Entscheidungen innerhalb eines Business Processes ab. Die anzuwendenden Regeln werden dabei innerhalb von Entscheidungstabellen (.rule) nach DMN 1.1 definiert. Die Regeln können automatisiert geprüft und die Ergebnisse für die Weiterverarbeitung an den Business Process zurückgegeben werden.

Hinweis:

DMN ist ein Standard zur Modellierung von Entscheidungen in Business Processes. Im Standard DMN ist auch die Simple Expression Language (S-FEEL) definiert, eine formale Ausdruckssprache zur Definition einer Entscheidungslogik.

DMN 1.1 mit S-FEEL ist online verfügbar unter https://www.omg.org/spec/DMN/1.1/.

Eigenschaften

Label

Beschriftung des Symbols im Prozessdiagramm

Rules anlegen und definieren

Warnung:

  • Defaultwerte des Typs Integer und Decimal können nicht leer sein.

  • Bei den Typen Integer und Decimal kann nicht geprüft werden, ob der Wert leer ist.

Um Regeln für Entscheidungen in Business Processes abzubilden, verwenden Sie bei der Modellierung von Business Processes sogenannte Rule-Bausteine. Diese Rule-Bausteine lassen sich anschließend mit einer Entscheidungstabelle (.rule) verknüpfen, in der die Regeln definiert sind.

Hinweis:

Sie können beliebig viele Entscheidungstabellen in einem Business Process verketten. Ausgangswerte der einen Tabelle werden somit zu Eingangswerten der nachfolgenden Tabelle. Dadurch lassen sich komplexe Entscheidungsbäume mit entsprechenden Verzweigungen modellieren.

Entscheidungstabelle (.rule) anlegen

Entscheidungstabellen (.rule) werden unterhalb des Business Processes über das Kontextmenü New > Rules oder über die Symbolleiste über  Add.png  > Add Rules angelegt.

Nach dem Anlegen wird die Entscheidungstabelle im X4 Designer geöffnet.

Regeln anlegen

DMN-Decision-Table-Editor.png

Sie legen Regeln in der Entscheidungstabelle (.rule) mithilfe der folgenden Bereiche des Editors fest.

Nr.

Element

Beschreibung

1

Werkzeugleiste

Funktionen zum Bearbeiten von Entscheidungstabellen, abhängig von Kontext und Auswahl

2

Kopfbereich

Einstellungen zur Definition von Input und Output, wobei mehrere Inputs und Outputs möglich sind.

Folgende Zellen sind zur Definition des Inputs und Outputs verfügbar:

  • Freitextfeld für den Spalten-Namen

  • Input- bzw. Output-Quelle 

    • Input bzw. Output: Input aus dem BPMN-Prozess bzw. Output an den BPMN-Prozess

    • Parameter: Auswahl eines Parameters (nur für Input verfügbar)

    • Variable: in einer Variable hinterlegter Wert (ohne Leerzeichen, z. B. FreigabeDurch)

    • Case State: Auswahl eines Status

    • Case Feature: Auswahl von Fachdaten

    • Data Object: Auswahl von Elementen eines Data Objects

  • Datentyp des Inputs bzw. Outputs (string, numberboolean)

  • Input-Pfad als Freitextfeld oder Auswahl (je nach Input-Quelle) bzw. Name des Outputs oder der Variablen als Freitextfeld oder Auswahl (je nach Output-Ziel)

3

Annotation

Freie Anmerkung, die nicht im Output ausgegeben wird

4

Regeln

Regeln für die Transformation von Inputs zu Outputs.

Regeln werden pro Zeile definiert, wobei die Reihenfolge der Zeilen die Überprüfungsreihenfolge vorgibt. Eine Regel hat mindestens eine Spalte zur Verarbeitung der Eingangswerte (Input) und mindestens ein Entscheidungs-Ergebnis (Output).

Die Regeln in der Entscheidungstabelle werden in der S-FEEL-Notation angegeben. Damit lässt sich die Entscheidungslogik in natürlicher Sprache "business-friendly" beschreiben. Gleichzeitig erlaubt sie als formale Auszeichnungssprache mit festgelegter Semantik, Grammatik und definierten Regeln die Interpretation und das Ausführen von Werten. S-FEEL kann Zeichenketten, Zahlen, einfache arithmetische Operationen und simple Vergleichsprüfungen interpretieren.

Beachten Sie:

  • Zeichenketten in Anführungszeichen setzen, z. B. "Abteilungsleiter"

  • Für Dezimalzahlen einen Punkt als Trennzeichen verwenden, z. B. 5.1

  • Ist der Wert einer Zelle der Input-Spalte nicht für eine Regel relevant, entsprechend S-FEEL ein - (Minuszeichen) in die Zelle eingeben

  • Eine Entscheidungstabelle kann eine Fallback-Regel enthalten, die immer zutreffen soll. Hierzu enthalten alle Zellen der Input-Spalten einer Fallback-Regel ein - (Minuszeichen).
    Ob eine Fallback-Regel sinnvoll ist und an welcher Stelle der Überprüfungsreihenfolge sie stehen sollte, hängt von der Hit Policy und dem Anwendungsfall ab.

5

Hit Policy

Einstellung zur Auswahl der Ergebnisse. Sie legt fest, wie viele Regeln einer Entscheidungstabelle zutreffen können und wie die Ergebnisse ausgegeben werden.

Hinweis:

Regeln können so definiert werden, dass die Anzahl und Auswahl der Ergebnisse gegen die Hit Policy verstößt. In diesem Fall müssen je nach Anwendungsfall die Regeln oder die Hit Policy korrigiert werden.

U (Unique): Nur eine Regel kann zutreffen und es wird genau ein Ergebnis ausgegeben.

Möglicher Verstoß gegen die Hit Policy:

  • Keine zutreffende Regel

  • Mehrere zutreffende Regeln

F (First): Eine oder mehrere Regeln können zutreffen, es wird aber nur das erste Ergebnis ausgegeben.

Beachten Sie die Überprüfungsreihenfolge!

Möglicher Verstoß gegen die Hit Policy:

  • Keine zutreffende Regel

A (Any): Eine oder mehrere Regeln mit demselben Ergebnis können zutreffen, es wird jedoch nur ein Ergebnis ausgegeben.

Möglicher Verstoß gegen die Hit Policy:

  • Keine zutreffende Regel

  • Mehrere zutreffende Regeln mit unterschiedlichen Ergebnissen

C (Collect): Alle zutreffenden Ergebnisse werden ohne feste Ausgabereihen­folge ausgegeben.

Möglicher Verstoß gegen die Hit Policy:

Keine zutreffende Regel

Ergebnisse der Entscheidungstabelle

Der fertige BPMN-Prozess mit der Entscheidungstabelle kann im X4 Designer validiert, auf Fehler überprüft und auf dem X4 Server ausgeführt werden.

Entscheidungstabellen können zu drei Ergebnissen führen:

Icon

Beschreibung

image2024-2-15_13-48-24.png

Der Rule-Baustein liefert ein oder mehrere Ergebnisse. Das Zwischenergebnis ist aufrufbar.

Kein-Ergebnis.png

Der Rule-Baustein liefert keine Ergebnisse. Mögliche Ursachen:

  • Für den Input gilt keine der definierten Regeln

  • Regeln fehlerhaft, z. B. Schreibfehler

  • Hit Policy nicht geeignet

Fehler.png

Der Rule-Baustein liefert einen Fehler, da die Entscheidungstabelle nicht konform zu S-FEEL ist. Ein Bericht mit einer Erklärung des Fehlers ist aufrufbar.

S-FEEL-Ausdrücke zur Definition von Regeln


Operator / Ausdruck

Beschreibung

Vergleich

10

Prüft, ob der Eingabewert gleich dem angegebenen Wert ist, z. B. 10

  • v:[Variablenname]

  • f:[Featurename]

  • p:[Platzhaltername]

  • c:[CaseState]

Führt eine Prüfung auf Basis einer Variablen, eines Features, eines Parameters oder eines Vorgangs-Statuswertes (Case State) durch

Mit STRGLEERTASTE lassen sich alle aktuell verfügbaren Variablen, Features, Parameter und Vorgangs-Statuswerte in einer Auswahlliste aufrufen.

<

Prüft, ob der Eingabewert kleiner als der angegebene Wert ist, z. B. < 10

<=

Prüft, ob der Eingabewert kleiner oder gleich dem angegebenen Wert ist, z. B. <= 10

>

Prüft, ob der Eingabewert größer dem angegebenen Wert ist, z. B. > 10

>=

Prüft, ob der Eingabewert größer oder gleich dem angegebenen Wert ist, z. B. >= 10

not()

Prüft, ob der Eingabewert nicht kleiner oder gleich dem angegebenen Wert ist, z. B. not(<=10)

Intervall

[1..10]

Prüft, ob der Eingabewert größer oder gleich dem Startwert und kleiner oder gleich dem Endwert ist

(1..10]

Prüft, ob der Eingabewert größer als der Startwert und kleiner oder gleich dem Endwert ist

[1..10)

Prüft, ob der Eingabewert größer oder gleich dem Startwert und kleiner als der Endwert ist

(1..10)

Prüft, ob der Eingabewert größer als der Startwert und kleiner als der Endwert ist

Disjunktion

3,5,7

Prüft, ob der Eingabewert 3,5 oder 7 ist

<2,>10

Prüft, ob der Eingabewert weniger als 2 oder mehr als 10 ist

10,[20..30]

Prüft, ob der Eingabewert entweder 10 oder zwischen 20 und 30 ist

"Meier", "Müller, "Weber"

Prüft, ob der Eingabewert entweder Meier, Müller oder Weber ist

Hinweis:

Eine umfangreiche Referenz zur Syntax der S-FEEL Notation finden Sie in der aktuellen Spezifikation zu DMN 1.1 (Kapitel 9) der Object Management Group. https://www.omg.org/spec/DMN/1.1