В drool у нас есть возможность найти, что все кортежи условий удовлетворяют правилу, когда я выполняю сеанс без состояния с фактом.
ex: если у нас есть условие правила в правиле RUL1, car.schi== 'A' ||car.carKind str [setsWith] 'A'
, если RUL1 удовлетворен из-за car.schi, то есть ли у нас API, где я могу получить эту информацию (car.schi).
Пример, который я привел, был проще, но наше действительное бизнес-правило было настолько сложным, как показано ниже,
(car.carKind! = \ "EZZ \" && car.carKind! = \ "ENG \" && car.carKind! = \ "ETD \") && ((car.schi содержит \ "N1 \" || car.schi содержит \ "N2 \") || ((car.schi содержит \ "IH \" || car.schi содержит \ "N4 \" || car.schi содержит \ "OM \" || car.schi содержит \ "DA \" || car.schi содержит \ "N5 \" || car.schi содержит \ "PA \""|| car.schi содержит \" FG \ "|| car.schi содержит \" PL \ "|| car.schi содержит \" PC \ "|| car.schi содержит \" PO \ "|| car.schiсодержит \ "NG \" || car.schi содержит \ "OX \" || car.schi содержит \ "OP \" || car.schi содержит \ "NS \" || car.schi содержит \ "FS \"|| car.schi содержит \ "FL \" || car.schi содержит \ "N3 \" || car.schi содержит \ "CM \" || car.schi содержит \ "DW \" || car.schi содержит\ "PB \") && (validateElementRule ($ trainrul)esRequestDTO.getElementRuleMap (), \ "1_N \", true, $ trainrulesRequestDTO.getCar (). getCarNumb ())))) && (((car.prevSchi не содержит \ "N2 \" && car.prevSchi не содержит \ "N1 \ ") && (car.prevLoadEmpty == \" L \ ") && ((car.prevCarKind str [startWith] \" F \ "||car.prevCarKind str [setsWith] \ "YF \") && (car.prevCarKind не str [arsWith] \ "FI \" && car.prevCarKind не str [начат с] \ "FW \" && car.prevCarKind не str [начинается с] \ "FB \") && (car.prevCarKind! = \ "YFB \"))) ||((car.nextSchi не содержит \ "N2 \" && car.nextSchi не содержит \ "N1 \") && (car.nextLoadEmpty == \ "L \") && ((car.nextCarKind str [startWith] \ "F\ "|| car.nextCarKind, стрне str [arsWith] \ "FI \" && car.nextCarKind не str [startWith] \ "FW \") && (car.nextCarKind! = \ "Y \" || car.nextCarKind! = \ "YFB \"))))
Если мы хотим разделить его на различные правила, чтобы определить, было ли оно выполнено из-за (prevCarKind, prevSchi, prevLoadEmpty) или (nextCarKind, nextSchi, nextLoadEmpty), было бы слишком сложно разделитьсложное правило.
Я также дал условие правила, как изображение взято из нашего пользовательского интерфейса приложения. Графическое представление приведенной выше строки условия правила Было бы полезно, если бы кто-то мог сообщить нам о том, как определить, удовлетворяется ли вышеприведенное условие в зависимости от того, на каком условии.B
Спасибо, Мадхан