Der Konsistenzanalysemechanismus sucht semantisch widersprüchliche
Regeln, wie z. B. Regeln, die nie ausgewählt werden, Regeln, die nie zur Anwendung kommen,
äquivalente Regeln, redundante Regeln, widersprüchliche Regeln und Konflikte zwischen
Entscheidungstabellen oder Entscheidungsbäumen.
Die Konsistenzprüfung ist ein Mechanismus, mit dem sichergestellt werden kann, dass Regeln
keine semantisch widersprüchlichen Elemente enthalten.
Mehrdeutigkeiten können in einer einzelnen Regel oder in einem Regelsatz enthalten sein. Zum Beispiel:
Eine einzelne Regel kann widersprüchliche Bedingungen enthalten und wird deshalb nie angewendet.
Zwei Regeln können für dasselbe Objekt gelten und ein bestimmtes Attribut auf zwei unterschiedliche Werte setzen. Solche Regeln sind widersprüchlich.
Die Konsistenzprüfung geht über die Syntaxaspekte hinaus, um auch Semantik zu berücksichtigen. Das heißt, wie sich die Regel während der Ausführung verhält. Mit Rule Designer können Sie auswählen, welche Prüfungen ausgeführt werden sollen.
Konsistenzprüfungen gehören zu einer der folgenden Kategorien:
Prüfungen, die eine einzelne Regel analysieren. Diese Prüfungen werden aktiviert, wenn Sie die Regel
erstellen und wenn Sie die Konsistenzprüfungsanalyse ausführen:
Prüfungen, die Regeln in Relation zu anderen Regeln analysieren. Diese Prüfungen
werden nur aktiviert, wenn Sie die Konsistenzprüfungsanalyse ausführen.
Konsistenzprüfungsberichte melden Probleme mit Regeln:
- Wenn es einen Regelablauf in Ihrem Regelprojekt gibt, meldet der Konsistenzprüfungsmechanismus
Probleme mit den Regeln, die in eine Regelaufgabe eingeschlossen sind und die zur Laufzeit ausgewählt werden können.
Der Mechanismus vergleicht nur Regeln, die in derselben Aufgabe ausgeführt werden können. Im Fall einer Regelaufgabe mit dynamischer Auswahlfilterung berücksichtigt der
Mechanismus die Regeln, die von dieser Aufgabe ausgewählt werden können. Eine Regel gilt als potenziell auswählbar, wenn nicht bestimmt werden kann, dass die Regel definitiv nicht ausgewählt werden kann.
- Wenn es keinen Regelablauf in Ihrem Regelprojekt gibt, werden wahrscheinlich alle Regeln im
Projekt ausgewählt.
- Sie gibt einen Hinweis auf die Konsistenz Ihrer Regeln, kann aber nicht alle potenziellen Probleme erkennen. Ein leerer Konsistenzprüfbericht ist deshalb keine Garantie dafür, dass es keine
Probleme in den analysierten Regeln gibt.
Weitere Informationen finden Sie unter Laufzeitregelauswahl und Regelüberschreibung.
Tipp: In der Regelanalyseansicht können Sie einen Grenzwert für die Anzahl der zurückgegebenen Ergebnisse eingeben:
Wenn Sie einen Regelsatz mit zahlreichen Problemen haben, kann das Festlegen eines Grenzwerts zu schnelleren Ergebnissen führen und einen kleineren, handlicheren Bericht erstellen. Die Analyse stoppt, wenn sie den Grenzwert erreicht.
Wenn Sie die Analyse fortsetzen möchten, klicken Sie im Statistikbericht auf Regelanalyse fortsetzen.
Regeln, die nie ausgewählt werden
Regeln werden
als nie ausgewählt
gemeldet, wenn sie nicht zu einer Regelaufgabe gehören und zur Laufzeit nicht ausgewählt werden können. Weitere Informationen finden Sie unter Laufzeitregelauswahl und Regelüberschreibung.
Regeln, die nie zutreffen
Eine Regel
wird als 'nie anwendbar' analysiert, wenn ihre Bedingungen nie erfüllt werden können.
Gewöhnlich ist die Syntax solcher Regeln zwar richtig, aber die Regeln enthalten allgemeine logische Fehler. Zum Beispiel:
Es wird der falsche Operator für die Kombination von Bedingungsanweisungen verwendet, z. B.
and anstelle von or:
the category of the customer is Gold and
the category of the customer is Platinum.
Werte sind vertauscht wie z. B. in der folgenden Regel:
the age of the customer is between 70 and
50.
Werte in den Bedingungen liegen nicht im zulässigen Bereich.
Regeln mit Bereichsverstößen
Um das Risiko von Fehlern zu mindern, können einigen Elementen nur Werte aus einem bestimmten
Bereich zugeordnet werden. Beispiel: Der jährliche Zinssatz für ein Darlehen ist auf Werte zwischen 0 und 10 begrenzt.
Wenn eine Regel eine Aktion enthält, die versucht, einen Wert zuzuordnen, der nicht innerhalb des zulässigen Bereichs liegt, zeigt Rule Designer einen Bereichsverstoßfehler im Bericht und im Regeleditor an.
Regeln mit äquivalenten Bedingungen
Der
Konsistenzprüfmechanismus meldet auch Regeln, in denen die Bedingungsteile dieselbe Bedeutung haben
und in denen Aktionsteile verschieden, aber nicht widersprüchlich sind.
Regeln, die äquivalente Bedingungen haben, stellen nicht unbedingt eine Fehlerbedingung dar, eignen
sind aber möglicherweise für eine Zusammenführung.
Äquivalente Regeln
Äquivalente Regeln werden gemeldet, wenn ihre Bedingungen und ihre Aktionen identisch sind.
Im folgenden Beispiel sind die Regeln Regel 1 und Regel 2 äquivalent:
Rule1
Definitionen
set minDiscount to 5
set ageDiscount to 10
if
the age of the borrower is more than 65
then
set the discount to minDiscount + ageDiscount
Rule2
IF
the age of the borrower is at least 66
then
set the discount to 15
Obwohl die zwei Regeln über eine unterschiedliche Syntax verfügen, wertet die Regelanalyse die numerischen Ausdrücke aus und berichtet, dass diese Regeln äquivalent sind. Deshalb können Sie eine dieser Regeln löschen.
Hinweis: Äquivalente Regeln treten häufig zwischen einer von Ihnen erstellten Entscheidungstabelle und einer vorhandenen Regel auf.
Redundante Regeln
Wenn zwei Regeln dieselben Aktionen beinhalten, wird eine der Regeln redundant, wenn die Bedingungen einer Regel in den Bedingungen der anderen Regeln enthalten sind.
Im folgenden Beispiel macht der Teil "else" der Regel Regel 2 die Regel Regel 1 redundant:
Rule1
IF
the category of the customer is Gold
then
set the discount to 10
Rule2
IF
the category of the customer is Platinum
then
set the discount to 15
else
set the discount to 10
Obwohl Regel 1 korrekt ist, ist sie redundant und kann deshalb gelöscht werden.
Anmerkung: Redundante Regeln treten häufig zwischen einer von Ihnen erstellten Entscheidungstabelle und einer vorhandenen Regel auf.
Sich widersprechende und in sich widersprüchliche Regeln
Regeln widersprechen einander, wenn die Aktionen der beiden Regeln einen jeweils anderen Wert für denselben Geschäftsbegriff (Element) setzen. Widersprüche (oder Konflikte) treten zwischen zwei Regeln auf, wenn die Bedingungen
äquivalent sind oder dieselben Werte abdecken. Stehen Sie sich beispielsweise die folgenden beiden Regeln an:
Rule1
IF
the loan report is approved
and the amount of the loan is at least 300 000
then
set the category of the borrower to Gold
Rule2
IF
the age of the latest bankruptcy of the borrower is less than 1
and the category of the borrower is not Platinum
then
set the category of the borrower to No Category
Regel 1 und Regel 2 widersprechen einander, wenn die folgende Situation eintritt:
Der Kreditbericht wird genehmigt.
Der Kreditbetrag ist 300000 oder höher.
Der Kreditnehmer war im letzten Jahr nicht insolvent.
Die Kategorie ist nicht Platinum.
Unter diesen speziellen Umständen setzen die Regeln
die Kategorie des Kreditnehmers auf einen jeweils anderen Wert. Regeln, die einander widersprechen, können korrigiert werden, indem Sie die Bedingungen ändern, eine der Regeln löschen oder unterschiedliche Prioritäten für die Regeln festlegen.
Eine Regel ist in sich widersprüchlich, wenn zwei Ausführungen derselben Regel
demselben Element einen jeweils anderen Wert zuordnen. Beispielsweise ist eine Regel, die zweimal auf einen bestimmten Arbeitsspeicher
(und Regelsatzparameter) angewendet kann und bei jeder Ausführung einen anderen Wert für ein allgemeines Attribut setzt,
in sich widersprüchlich. Zum Beispiel:
IF
the customer category is Gold
then
set the discount of the cart to the bonus points of the customer
Wenn es bei dieser Regel
zwei customer-Objekte mit jeweils anderen
bonus points im Arbeitsspeicher gibt, wird die Regel
zweimal ausgeführt, und es tritt ein Konflikt auf, weil die beiden Ausführungen der Regel
the discount of the cart auf einen jeweils anderen Wert setzen.
Konflikte in Entscheidungstabellen
Zum
Überprüfen von Entscheidungstabellen und Entscheidungsbäumen müssen Sie die Option
Entscheidungstabellen und Entscheidungsbäume in regelübergreifende Prüfungen einschließen aktivieren.
Wenn diese Option
aktiviert ist, können Sie Regeln zwischen und innerhalb von Entscheidungstabellen und Entscheidungsbäumen prüfen. Das Regelanalyseprogramm sucht nach Konflikten, Redundanzen und
Äquivalenzen für die folgenden Elemente:
Zwei Zeilen derselben Entscheidungstabelle
Zwei Zeilen zweier unterschiedlicher Entscheidungstabellen
Zwei Blätter desselben Entscheidungsbaums
Zwei Blätter zweier unterschiedlicher Entscheidungsbäume
Eine Zeile einer Entscheidungstabelle und ein Blatt eines Entscheidungsbaums
Eine Zeile einer Entscheidungstabelle und eine Aktionsregel
Ein Blatt eines Entscheidungsbaums und eine Aktionsregel
Wenn diese
Option inaktiviert ist, werden diese Prüfungen für Entscheidungstabellen und Entscheidungsbäume nicht
durchgeführt. Es werden nur Aktionsregeln geprüft.
Entscheidungstabellen und Entscheidungsbäume werden jedoch auf nie anwendbare Regeln
und Regeln mit Domänenverstößen hin geprüft, auch wenn diese Option inaktiviert ist. Diese Option hat keine Auswirkungen auf Überschneidungs- und Lückenprüfungen, die durchgeführt werden, wenn Sie die
Regeln schreiben.