Eine Regel wird nicht ausgeführt

Symptome

Wenn Sie in Decision Designerein Entscheidungsmodell ausführen, wird keine Regel ausgeführt.

Wichtig: Dieser Abschnitt zur Fehlerbehebung gilt nicht für Taskmodelle.

Ursachen

Es kann verschiedene Gründe dafür geben, dass eine Regel nicht ausgeführt wird, einschließlich der Definition der Entscheidungslogik oder der von Ihnen ausgewählten Interaktionsrichtlinie.

Ein weiterer möglicher Grund könnte sein, dass aufgrund von unbekannten Werten in der Regelbedingung eine Ausnahmebedingung aufgetreten ist. Die folgenden Typen semantischer Ausnahmen können zu einem unbekannten Wert führen:
  • ArithmeticException
  • NumberFormatException
  • NullPointerException
  • IndexOutOfBoundsException

Ausdrücke in Bedingungen, die bei ihrer Auswertung zu Ausnahmebedingungen führen, werden als unbekannte Werte behandelt und von der Regelengine verarbeitet. Die Regelengine wertet die gesamten Regelbedingungen mit der folgenden Dreiwertelogik aus:

Logik mit drei Werten

Wenn die Regelbedingung trotz unbekannter Werte in den Bedingungsausdrücken mit 'true' ausgewertet wird, wird die Aktion des then-Teils angewendet. Wenn die Regelbedingung trotz unbekannter Werte in den Bedingungsausdrücken mit 'false' ausgewertet wird, wird die Aktion des else-Teils angewendet. Wenn die Regelbedingung aufgrund von unbekannten Werten in den Bedingungsausdrücken als 'unknown' ausgewertet wird, wird die Regel nicht ausgeführt.

Wenn im folgenden Beispiel der Status eines Kreditnehmers unbekannt ist, wird keine Regelaktion ausgeführt.

if
   the status of Borrower starts with "duplicate"
then
   reject 'the loan' ;
   add "duplicate detected" to the messages of 'the loan' ;
else 
   add "no duplicate found" to the messages of 'the loan' ;

Wenn im folgenden Beispiel der Status des Kreditnehmers unbekannt ist und der Kommentar des Kredits das Wort duplicateenthält, wird der Kredit abgelehnt und einduplicate detectedwird gesendet.

if 
   the status of Borrower starts with "duplicate" or the comment of 'the loan' contains "duplicate"
then
   reject 'the loan' ;
   add "duplicate detected" to the messages of 'the loan' ;
else 
   add "no duplicate found" to the messages of 'the loan' ;

Wenn jedoch der Status des Kreditnehmers unbekannt und der Kemmentar unbekannt ist, wird keine Regelaktion ausgeführt. Der Kredit wird nicht abgelehnt und die Nachrichtno duplicate foundwird nicht zum Darlehen hinzugefügt.

Wenn im folgenden Beispiel der Status des Kreditnehmers unbekannt ist und der Kommentar zum Darlehen das Wort duplicate enthält, wird weder die then- noch die else-Aktion ausgeführt. Das Darlehen wird also nicht abgelehnt und die Nachricht no duplicate found wird nicht zum Darlehen hinzugefügt.

if 
   the status of Borrower starts with "duplicate" and the comment of 'the loan' contains "duplicate"
then
   reject 'the loan' ;
   add "duplicate detected" to the messages of 'the loan' ;
else 
   add "no duplicate found" to the messages of 'the loan' ;

Beide Ausdrücke müssen wahr (true) sein, damit das Darlehen abgelehnt wird.