0
我正試圖在Drools中實現一個計算事實的某些屬性的總和的規則。使用積累和總和很有效。問題是,如果沒有與accumulate方法的源部分中的條件相匹配的事實,則不執行規則。Drools累加方法,如果沒有匹配的來源事實返回零
我想sum方法返回零,如果沒有事實匹配,並且when子句的其餘部分被檢查。這有可能嗎?
更新: 我正在使用Drools 6.0.1 問題似乎在於和子句。這是一個代碼,這是我的問題。
rule "accu"
when
$n: Number()
from accumulate($o: Order() and OrderLine($v: quantity),
sum($v))
then
System.out.println("*#*#*#*#*#*#*#*#*#* Accu has fired *#*#*#*#*#*#*#*#*#");
end
只有Order或OrderLine纔有效。我有一種感覺,我以錯誤的方式攻擊了這個問題。在我的真實情況下,我想總結的價值在OrderLine中,但是標準在另一個類中。
$ol : OrderLine($q : quantity)
and
$ac : ArticleClass(orderLine == $ol, crtiteria1=efg, criteria2=abc)