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