У меня есть проблема, когда после того, как я установил объект в «FAILED» в первом правиле, но при запуске 2-го правила значение все еще указывает на исходное значение, которое «PASS».Обратите внимание, что значение передается из kie-клиента.
rule "1st rule"
dialect "java"
when
$ruleEngine:RuleEngine()
then
OutputObject outputObject = new OutputObject();
outputObject.setResult("FAIL" );
$ruleEngine.setOutputObject(outputObject);
insert ($ruleEngine);
end
rule "2nd rule"
dialect "java"
when
$ruleEngine:RuleEngine(
( String.valueOf($ruleEngine.getOutputObject.getResult()).equals("PASS") ) //=====> the value is still PASS
)
then
System.out.println("output object==" + $ruleEngine.getOutputObject().getResult().equals("FAIL")); // ===> is true
System.out.println("output object:" + $ruleEngine.getOutputObject().getResult()); // ==> object is FAIL ?? Why?
end
Вывод правила
output object==true
output object:FAIL
Вопрос 1) Почему значение результата установлено на "FAIL", но выполняется второе правилово время проверки «когда», тогда значение результата по-прежнему равно «PASS»
Вопрос 2) Как я могу получить значение результата, установленное как «FAIL» во 2-м правиле «когда» при проверке предложения?