규칙을 실행 한 모든 개별 조건을 가져오고 싶습니다. 나는 다음과 같은 규칙이있는 경우규칙 실행을 초래 한 모든 조건을 얻으십시오.
예를 들어, :
booleanPredicate1() resulted in rule execution.
:package app1; rule 'rule1' when MyObjectType1(booleanPredicate1()) or ( MyObjectType2(booleanPredicate2()) and MyObjectType3(booleanPredicate3()) ) or MyObjectType4(booleanPredicate4()) then System.out.println("In rule - " + drools.getRule().getName()); end
및
booleanPredicate1()
,booleanPredicate2()
및booleanPredicate4()
은 내가 다음과 같은 출력을 얻으려면,true
있습니다- ,
는 지금까지 시도 이러한 모든 조건 방법의 구현 안에 한 무엇, 그 방법은 반환하는 것입니다 경우에만 실행됩니다 로깅 문을 추가 한 true
:
boolean booleanPredicate1()
{
boolean ret = false;
...
...
if (<business-logic-defined-predicate>)
{
ret = true;
}
if(ret)
{
addToLog("booleanPredicate1 became true.");
}
return ret;
}
그러나이 솔루션을 사용하면 출력이 booleanPredicate2() resulted in rule execution.
으로 잘못 표시됩니다.
정확한 로깅 결과를 얻을 수있는 방법이 있습니까?
감사합니다. @laune! 그 종이의 어느 부분에이 문제에 대한 해결책이 담겨 있는지 정확히 설명해 주시겠습니까? –
그냥 읽으십시오 - 다른 섹션은 규칙 기반 시스템에 대한 이해를 해치지 않습니다. – laune