0
我有很多與JBOSS Drools合作的經驗。 當前項目我與使用工作Drools的4Drools規則有什麼問題?
這裏是我在項目規則的一個
rule "testcase"
salience 300
when
$item : Item(itemTypeId in (Item.ITEM_TYPE_A, Item.ITEM_TYPE_B), targetId < 0)
not Tegret(targetId == $item.targetId)
then
retract ($item);
end
想法是收回從沒有關聯的目標對象工作記憶等項目。
項{=的itemId 7305,itemTYpeId = ITEM_TYPE_A,目標ID = -1023} 目標{目標ID = -1023}
在這種情況下,規則不應: 我與這些對象在工作記憶測試它火,但它確實。 經過大量的實驗後,我發現這種奇怪的行爲:
規則「testcase2」觸發,而「testcase1」不觸發。
rule "testcase1"
salience 300
when
$item : Item(itemTypeId in (Item.ITEM_TYPE_A, Item.ITEM_TYPE_B), targetId < 0)
Tegret(targetId == $item.targetId)
then
...
end
rule "testcase2"
salience 300
when
$item : Item(itemTypeId in (Item.ITEM_TYPE_A, Item.ITEM_TYPE_B), targetId < 0)
Tegret($ti:targetId)
eval($ti == $item.targetId)
then
...
end
所以這裏怎麼了? 我在不同的程序運行中分別運行「testcase1」和「testcase2」。
您是否在較新版本的Drools中測試了規則?如果是這樣,他們工作嗎?即這是一個Drools 4的錯誤? – Steve