Entscheidungslogik definieren

Um eine Entscheidungselement zu vervollständigen, müssen Sie in Ihrem DMN-Diagramm Entscheidungslogik definieren. Diese wird typischerweise in einer Entscheidungstabelle definiert. Grundsätzlich sind Entscheidungstabellen so aufgebaut, dass die Spalten in Eingabe- und Ausgabedaten unterteilt sind und die Zeilen für die jeweiligen Entscheidungsregeln genutzt werden.

Um eine Entscheidungstabelle zu definieren, nehmen Sie die folgenden Schritte vor:

  1. Ziehen Sie das Element Decision wie oben beschrieben aus der Elementauswahl auf die Zeichenfläche.
  2. Um eine Entscheidungslogik zu hinterlegen, klicken Sie auf das Tabellen-Symbol in der oberen linken Ecke des Elements. Der Dialog Entscheidungslogik öffnet sich nun.

  3. Im Decision Table-Tab können Sie nun eine Entscheidungslogik hinterlegen, indem Sie Eingaben und Ausgaben definieren und diese durch Regeln zuordnen. Klicken Sie auf Neue Eingabe, um eine Eingabe zu benennen.

  4. Legen Sie nun den Datentyp für Eingabe und Ausgabe fest, indem Sie auf das Feld Text klicken. In der Spaltenkonfiguration können Sie den gewünschten Datentyp (zum Beispiel Aufzählung) auswählen.

  5. Falls Sie den Datentyp Aufzählung ausgewählt haben, können Sie nun mögliche Werte festlegen.

  6. Eingabe- bzw. Ausgabewerte vom Typ Aufzählung können Sie mit Hilfe der nach oben und nach unten Buttons rechts vom Wert verschieben oder auch automatisch alphanumerisch sortieren. Dazu klicken Sie auf den Werte sortieren Button

  7. Um weitere Eingaben und Ausgaben zu erstellen, klicken Sie auf Eingang hinzufügen beziehungsweise Ergebnis hinzufügen.

    Sobald Sie einen neuen Input definiert haben, wird ein entsprechendes Input Data Element automatisch auf der Zeichenfläche erstellt:

  8. Klicken Sie auf Regel hinzufügen, um eine neue Regel zu erstellen.

  9. Nun können Sie den Zusammenhang zwischen Input- und Outputwerten festlegen: dazu werden Operatoren und Eingabewerte festgelegt. Führen Sie einen Doppelklick auf die betreffende Zeile aus.

    Die folgende Tabelle beschreibt die verfügbaren Vergleichsoperatoren.

    Entscheidungstabelle-Operatoren
    Operator Beschreibung Vorhanden für Typen
    gleich (für Datum:auf) Gibt true zurück, falls der Eingabewert gleich dem Wert im entsprechenden Feld der Entscheidungstabelle ist. Aufzählung, Text, Zahlwert, Wahrheitswert, Hierarchie, Datum, Liste jeden Typs
    gleich (für Daten:nicht auf) Gibt true zurück, falls der Eingabewert nicht gleich dem Wert im entsprechenden Feld der Entscheidungstabelle ist. Aufzählung, Text, Zahlwert, Wahrheitswert, Hierarchie, Datum, Liste jeden Typs
    weniger (für Datum: vorher) Gibt true zurück, falls der Eingabewert kleiner als der Wert im entsprechenden Feld der Entscheidungstabelle ist. Nummer, Datum
    weniger oder gleich (für Datum:bis) Gibt true zurück, falls der Eingabewert kleiner oder gleich dem Wert im entsprechenden Feld der Entscheidungstabelle ist. Nummer, Datum
    größer (für Datum: nach) Gibt true zurück, falls der Eingabewert kleiner als der Wert im entsprechenden Feld der Entscheidungstabelle ist. Nummer, Datum
    größer oder gleich (für Datum: von) - Gibt ``true`` zurück, falls der Eingabewert größer oder gleich dem Wert im entsprechenden Feld der Entscheidungstabelle ist. Nummer, Datum
    enthält (für Zahlen: enthält) Gibt truezurück, falls der Eingabewert den Wert im entsprechenden Feld der Entscheidungstabelle enthält. Text, Zahl
    enthält nicht (für Zahlen: enthält nicht) Gibt true zurück, falls der Eingabewert nicht gleich dem Wert im entsprechenden Feld der Entscheidungstabelle ist. Text, Zahl
    beginnt mit Gibt truezurück, falls der Eingabewert den Wert im entsprechenden Feld der Entscheidungstabelle enthält. Text
    endet mit - Gibt ``true`` zurück, falls der Eingabewert den Wert im entsprechenden Feld der Entscheidungstabelle enthält. Text
    Element von Gibt true zurück, falls der Eingabewert in der Liste des entsprechenden Felds der Entscheidungstabelle ist. Aufzählung, Text, Zahlwert, Wahrheitswert, Hierarchie, Datum
    nicht Element von Gibt true zurück, falls der Eingabewert nicht in der Liste des entsprechenden Felds der Entscheidungstabelle ist. Aufzählung, Text, Zahlwert, Wahrheitswert, Hierarchie, Datum
    Elemente von und enthält nur Gibt true zurück, falls der Eingabewert nur in der Liste des entsprechenden Felds der Entscheidungstabelle ist. Liste aller Typen
    enthält alle von Gibt true zurück, falls die Eingabeliste wenigstens ein Element des entsprechenden Felds der Entscheidungstabelle enthält. Liste aller Typen
    enthält keins von Gibt true zurück, falls die Eingabeliste kein Element in der Liste des entsprechenden Felds der Entscheidungstabelle enthält. Liste aller Typen
    gültig Gibt true zurück, falls der Eingabewert definiert (nicht leer) und gültig ist. Falls die Regel zum Beispiel nur numerische Werte, die gleich oder größer als 0 sind, akzeptiert, sind alle numerischen Werte kleiner als 0 und alle nicht-numerischen Werte nicht valide (ungültig). Aufzählung, Text, Zahlwert, Wahrheitswert, Hierarchie, Datum
    nicht gültig Gibt true zurück, falls der Eingabewert definiert (nicht leer) und nicht gültig ist. Falls die Regel zum Beispiel nur numerische Werte, die gleich oder größer als 0 sind, akzeptiert, sind alle numerischen Werte kleiner als 0 und alle nicht-numerischen Werte nicht valide (ungültig). Aufzählung, Text, Zahlwert, Wahrheitswert, Hierarchie, Datum
    definiert Gibt true zurück, falls der Eingabewert definiert (nicht leer) ist. Aufzählung, Text, Zahlwert, Wahrheitswert, Hierarchie, Datum
    nicht definiert Gibt true zurück, falls der Eingabewert nicht definiert ist. Aufzählung, Text, Zahlwert, Wahrheitswert, Hierarchie, Datum
  10. Wählen Sie einen Eingabewert aus.
  1. Optional können Sie eine textuelle Beschreibung der Regel in der Spalte Anmerkungen hinterlegen.

Entscheidungsregeln importieren

Möglicherweise haben Sie schon einige Entscheidungsregeln in einem Spreadsheet definiert. In diesem Fall können Sie diese Regeln in Ihre DMN-Entscheidungstabelle importieren, zum Beispiel als Liste Komma-separierter Werte.

Öffnen Sie den Entscheidungstabellen-Editor und klicken anschließend auf Import/Export - Text Import:

  1. Nun können Sie die Entscheidungsregeln einfügen, beispielsweise mit Copy&Paste.

In diesem Beispiel sehen wir ein Set von Regeln, das einen Kundenrabatt bestimmt:

Importieren von Entscheidungsregeln.

Die Regeln müssen der folgenden Struktur entsprechen:

  • Abhängig vom gewählten Trennzeichen muss ein Feld in der Entscheidungstabelle/Regel mit einem Tab, Semicolon oder Komma getrennt werden. Vergleichsoperatoren wie = und <=sind Teil des Feldes, auf das sie sich beziehen.
  • Beginnen Sie jede Regel in einer neuen Zeile.
  • Es werden ausschließlich die folgenden Literal Expressions unterstützt:
    • kein(Wert)
    • not(value1, ..., valueN)
    • !=value

    Zum Beispiel, not(Premium, Gold, Platinum) kann alle Kunden ausschließen, die eine entsprechende Bonuskarte besitzen.

Hinweis

Der Import überschreibt keine bereits bestehenden Regeln. Nachdem Sie die Regeln importiert haben, werden Sie zum Ende der Tabelle hinzugefügt.

Die importierten Regeln werden zur Tabelle hinzugefügt.

Entscheidungslogik als Literal Expressions definieren

Als eine Alternative zu der Logik in der Entscheidungstabelle für erfahrenere Benutzer können Sie auch Literal Expressions definieren. Literal Expressions sind vordefinierte logische Algorithmen oder Regeln, die verwendet werden können, um automatisch Ausgabeergebnisse für Entscheidungen zu erzeugen.Oft, aber nicht notwendigerweise werden sie in einer formalen Ausdruckssprache erstellt. Sie kommen am häufigsten zum Einsatz, wenn die Ausgabe einer Entscheidung eine Folge von komplexen Berechnungen oder logischen Algorithmen ist, oder wenn die Logik der Entscheidung nicht viele Variationen in ihren Ausgaben in Bezug auf seine Eingänge aufweist.

Literal Expressions werden in FEEL ("Friendly enough expression language") geschrieben. Diese Sprache zählt zu den DMN-Standards. Sie können Beispiele unter folgendem Link herunterladen: http://www.omg.org/spec/DMN/1.0/PDF.

Mehr zu eigenen Attributen fin den Sie im  Abschnitt Literal Expressions (Funktionen in DMN-Entscheidungen) verwenden.

Wichtig

Wenn Sie eine Literal Expression hinterlegen, überschreibt diese die Logik in der Entscheidungstabelle.

Sie haben auch die Möglichkeit, eine Entscheidungslogik aus einem anderen DMN-Diagramm zu referenzieren.

  1. Wechseln Sie in den LinkTab. Der Verlinkung setzen-Dialog öffnet sich.

  2. Wählen Sie aus dem Navigationsbaum das Diagramm und die gewünschte Entscheidungslogik aus.

Wichtig

In älteren Versionen des Process Managers war es möglich, ein Diagramm zu verlinken, ohne eine Entscheidung zu spezifizieren. Dies führt jedoch dazu, dass das verlinkende Diagramm semantisch unvollständig ist und nicht in der Simulation und im Testlabor ausgeführt werden kann.

Entscheidungsmodelle in Business Knowledge Models referenzieren

Wenn ein Business Knowledge Model eine Entscheidung verlinkt, kann eine referenzierende Entscheidung die entsprechende Entscheidungslogik wiederverwenden. Eine solche Referenz wird als Boxed Invocation bezeichnet.

Boxed Invocations ermöglichen das Verwenden von Entscheidungslogik und Datentypen-Informationen als eine generische Funktion, wohingegen Entscheidungen, die direkt in DMN Entscheidungselementen verlinkt werden, nicht nur die Typen der Eingabedaten der verlinkten Entscheidung, sondern die konkreten Eingabedatenobjekte übernehmen.

In dem folgenden Beispiel wird eine Versicherungsprämie auf Basis der Risikostufen des beantragenden Kunden und seines Partners berechnet. Für jede Person wird die Risikostufe getrennt bestimmt. Die Anwendung eines Business Knowledge Models ermöglicht es, das verlinkte Entscheidungsmodel mit unterschiedlichen Eingabedaten zu verwenden. Über eine direkte Verlinkung eines DMN-Diagramms wäre eine Differenzierung der Eingabedaten nicht möglich.

Über Business Knowledge Models können Sie Entscheidungslogik wiederverwenden.

Genauso wie Sie Entscheidungen in Entscheidungselementen verlinken, können Sie diese auch in Business Knowledge Models hinterlegen.

  1. Öffnen Sie die verlinkende Entscheidung.
  2. Wechseln Sie zum InvocationTab.
  3. Konfigurieren Sie die Zuordnung von Eingabeparametern der referenzierenden und der aufgerufenen Entscheidung:

Wenden Sie ein Business Knowledge Model in einer Entscheidung an.

Hit Policies und Vollständigkeitseinstellungen konfigurieren

Mit der Hilfe von Hit Policies können Sie definieren, wie Eingaben, die von mehreren Regeln behandelt werden und Eingaben, auf die keine Regel zutreffen, behandelt werden.

Es gibt Single Hit Policies und Multiple Hit Policies Single Hit Policies legen fest, dass für eine Eingabe genau eine Regel angewandt wird, während bei Multiple Hit Policies mehrere Regeln angewendet werden können und die Ausgaben anschließend aggregiert werden.

Die Vollständigkeitseinstellung spezifiziert, ob die Tabelle für jede mögliche Eingabe eine Ausgabe produziert.

Genaue Details zu Hit Policies und Vollständigkeitseinstellungen können Sie der DMN Spezifikation entnehmen:http://www.omg.org/spec/DMN/1.0/PDF/

Definieren Sie die Hit Policy und Aggregations- und Vollständigkeitseinstellungen, indem Sie folgendae Schritte ausführen:

  1. Klicken Sie auf die UC-Beschriftung in der oberen linken Ecke der Entscheidungstabelle. UC bezeichnet eine Unique Hit Policy und eine vollständige Entscheidungstabelle.
  1. In dem Dialog Konfiguration der Entscheidungstabelle können Sie die Hit Policy und die Aggregations- und Vollständigkeitseinstellungen konfigurieren.
  1. Klicken Sie auf Speichern, um Ihre Einstellungen abzuspeichern.

Entscheidungstabellen verifizieren

Signavio verfügt daher über eine Funktion zur automatischen Überprüfung von Entscheidungstabellen.

Klicken Sie auf die Überprüfen Schaltfläche in der oberen rechten Ecke des Entscheigunstabellendialogs, um die automatische Überprüfung durchzuführen:

Überprüfen der Entscheidungstabelle.

In unserem Beispiel ist eine Kombination von Eingabewerten durch keine Regel abgedeckt:

Die Verifizierungsfunktion hat einen Fehler gefunden: Für eine Eingangskombination, existiert keine Regel existiert.