사실의 일부 속성 합계를 계산하는 Drools에서 규칙을 구현하려고합니다. 그것은 누적과 합계를 사용하여 훌륭하게 작동합니다. 문제는 accumulate 메소드의 소스 부분에있는 조건과 일치하는 사실이 없을 때 룰이 실행되지 않는다는 것입니다.일치하는 소스 팩트가없는 경우 0을 반환하는 Drools 누적 메소드
실제로 일치하는 것이없고 나머지 when 절이 검사되면 sum 메서드에서 0을 반환하고 싶습니다. 어떻게 든 가능할까요?
업데이트 : Drools 6.0.1을 사용하고 있습니다. the와 the 절에 문제가있는 것 같습니다. 여기 내 문제는 코드입니다.
rule "accu"
when
$n: Number()
from accumulate($o: Order() and OrderLine($v: quantity),
sum($v))
then
System.out.println("*#*#*#*#*#*#*#*#*#* Accu has fired *#*#*#*#*#*#*#*#*#");
end
주문 또는 주문 회선만으로 작동합니다. 나는이 문제를 잘못된 방향으로 공격하고있는듯한 느낌이 들었다. 내 실제 사례에서 요약하고자하는 값은 OrderLine에 있지만 다른 클래스에있는 기준입니다.
$ol : OrderLine($q : quantity)
and
$ac : ArticleClass(orderLine == $ol, crtiteria1=efg, criteria2=abc)