Rules Matrix

Die Rules Matrix dient zur Auswertungen von Business Rules. Es ist möglich verschiedenen Matrizen mit individuellen Spalten zu erstellen. Die Matrix wird anschließend mit Zeilen befüllt. Diese können dann per Actionhandler ausgewertet werden. Die Zeile mit der besten Trefferquote wird als Ergebnis verwendet. Treffen nicht alle Spalten zu, so wird das nächstbeste Ergebnis verwendet.

Erstellen einer Matrix

Eine Matrix wird im Administrationsclient erstellt. Damit der entsprechende Reiter sichtbar ist muss der aktuelle Benutzer die Rolle rulesadministrator besitzen.

Über den Punkt “Matrix hinzufügen” lassen sich beliebig viele Matrizen anlegen. Bei Klicken öffnet sich ein neues Popup in welchem die Matrix in ihrem Aufbau definiert wird. Als erstes muss ein Name für die Matrix vergeben werden, welcher in diesem Beispiel einfach “Entscheidung” ist. Ebenfalls muss angegeben werden welche Gruppe die Besitzer dieser Matrix ist. Alles User innerhalb dieser Gruppe ist es erlaubt die Matrix zu sehen und zu bearbeiten. Es werden nur Gruppen angezeigt in denen sich der Ersteller der Matrix aktuell befindet.

Spalten definieren

Im nächsten Schritt müssen eine beliebige Anzahl an Spalten angelegt werden. Jeder Spalte muss ein Name und ein Spaltentyp gegeben werden. Ein Spaltentyp definiert hierbei die Art des Inhalts. Normale Spaltentypen werden ausgelesen, wohingegen “Result” Typen als Ergebnis Spalten dienen und nicht für die Auswertung verwendet werden. Hierbei wird zwischen verschiedenen Typen unterschieden:

Spaltentyp	Beschreibung
STRING	Normale Zeichenkette. Hier kann Freitext eingeben werden.
RESULT_STRING	Ergebnisspalte / Normale Zeichenkette. Hier kann Freitext eingeben werden.
LONG	Hier können ganze Zahlen eingegeben werden.
RESULT_LONG	Ergebnisspalte / Hier können ganze Zahlen eingegeben werden.
FLOAT	Hier werden Gleitkommazahlen eingetragen.
RESULT_FLOAT	Ergebnisspalte / Hier werden Gleitkommazahlen eingetragen.
BOOLEAN	Hier werden wahr oder falsch Werte eingetragen.
RESULT_BOOLEAN	Ergebnisspalte / Hier werden wahr oder falsch Werte eingetragen.
IDENTITY	Hier können Systembenutzer die im System angelegt sind ausgewählt werden.
RESULT_IDENTITY	Ergebnisspalte / Hier können Systembenutzer die im System angelegt sind ausgewählt werden.

In folgendem Beispiel werden 3 Spalten angelegt die durchsucht werden sollen und hierbei von unterschiedlichem Spaltentyp sind. Es wurde ebenfalls eine Ergebnisspalte angelegt in welcher in Benutzer als Ergebnis ausgegeben werden soll.

Nach einem Klick auf Speicher ist die Matrix angelegt und kann nun mit Werten befüllt werden.

Befüllen der Matrix

Das nachfolgenden Bild zeigt eine bereits befüllte Matrix. Hier ist es möglich die komplette Matrix zu entfernen, zu bearbeiten, neue Zeilen hinzuzufügen und Spalten wieder zu löschen.

Element	Beschreibung
1	Über diesen Button lässt sich die gesamte Matrix wieder entfernen.
2	Hier wird die Matrix mit allen eingegebenen Zeilen angezeigt.
3	Über diesen Button lässt sich die Matrix bearbeiten. Jedoch ist es nicht möglich den Spaltentyp der bereits bestehenden Spalten zu verändern. Sie können jedoch gelöscht, bzw. neu hinzugefügt werden.
4	Über diesen Button lassen sich ganze Zeilen wieder entfernen.
5	Hier lassen sich neue Spalten hinzufügen.

Möchte man nun eine neue Zeile hinzufügen, so wird ein Popup angezeigt. In diesem werden je nach Spaltentyp verschiedene Felder angezeigt. Bei String z.B. ein einfaches Eingabefeld. Bei Identity wird eine Liste aller angelegten Benutzer dargestellt. Bei Boolean wird eine Liste mit wahr oder falsch angezeigt.

Wird bei einem Feld ein Sternchen “*” ausgewählt, so gilt dies als Wildcard und ein beliebiger Wert wird bei der Auswertung angenommen.

Benutzen der Matrix per Actionhandler

Die Benutzung der Matrix per Handler wird hier MatrixHandler beschrieben.

Auswertungsbeispiele

Als Grundlage dieser Auswertungen setzen wir die befüllte Beispielstabelle von oben mit 3 Suchwerten und einer Ergebnisspalte. Die folgende Tabelle zeigt die Ergebnisse für einige fiktive Auswertungen anhand der folgenden Regeln:

Es wird die Spalte mit der größten Übereinstimmung als Ergebnis angesehen.

Treffen mehr als eine Zeile überein, so wird der oberste Treffer verwendet.

Suchwert 1	Suchwert 2	Suchwert 3	Ergebnis
Freising	true	20	Group_1
Freising	true	89	wiki
Freising	false	20	Group_1
Freising	false	8267	Group_1