Überprüfung der Konsistenz

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:

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:
Die Abbildung zeigt die Grenzwerteinstellung.

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.