Drools Workbench(a.k.a Guvnor)规则冲突验证问题

时间:2015-09-10 23:48:11

标签: drools drools-guvnor

我想弄清楚为什么Drools继续说这个指导决策表的规则是冲突的。我还在Excel工作表中创建了这个表并导入到Drools中,它给了我相同的规则集没有冲突。

冲突的规则:(每条规则中唯一不同的是包括AwardCost在内的起点和终点距离范围。

rule "Row 1 DistanceAwardTable" 
  dialect "mvel" 
when 
  $distanceAwardRequest: DistanceAwardRequest(startDistanceRange >= 0,
                                              endDistanceRange <= 1000 ) 
then 
  AwardResult $awardResult = new AwardResult(); 
  $awardResult.setAirlineId( 1 ); 
  $awardResult.setAwardCost( 15000 ); 
  insert( $awardResult ); 
end 

同样的规则并没有给我一个冲突错误:

rule "Row 1" 
  dialect "mvel" 
when 
  DistanceAwardRequest(startDistanceRange >= 0,
                       endDistanceRange <= 1000) 
then 
  AwardResult $awardResult = new AwardResult(); 
  $awardResult.setAwardCost(15000); 
  $awardResult.setAirlineId(1); 
  insert( $awardResult );
end 

这里唯一不同的两件事是,在一组规则中,DistanceAwardRequest绑定到$ distanceAwardRequest,而在另一规则中,这不是。

我还创建了一个测试,以查看是否有多个规则触发,但事实并非如此。

我在这里缺少什么?

*** UPDATE

决策表示例:

航空公司ID:1 起始距离= 0 结束距离= 1000 费用:50000 分类:1

航空公司ID:1 起始距离:1001 结束距离= 2000 费用:60000 分类:1

航空公司ID:1 起始距离:2001年 结束距离:3000 费用:70000 1级

0 个答案:

没有答案