drools规则中的多个布尔条件?

时间:2016-06-17 10:36:42

标签: java drools rule-engine

我创建了一个规则,其“when”条件如下: -

when
    $map: Map(this["key1"].equals("value1")) and Map(this["key2"].equals("value2"))  
then
...

上述情况正常。 现在如何在规则中添加多个布尔条件? 例如。上述规则可概括为:a和b 所以,如果我想创建一个规则:(a和b)或c那么它的实际drl语法是什么。 我是drools的新手,所以请帮助我使用规则(a和b)或c的语法。

我确实创建了一个语法

when
    $map: Reindexing((Map(this["key1"].equals("value1")) and Map(this["key2"].equals("value2"))) or  Map(this["key3"].equals("value3"))) 
then

但是我得到了以下异常

  

错误消息:消息[id = 1,level = ERROR,   path = mapIterationRules.drl,line = 13,column = 0 text = [ERR 101] Line   13:21在输入'(在规则“第一规则”中)没有可行的替代方案

由于

1 个答案:

答案 0 :(得分:2)

找出上述规则的语法。感谢laune和toni的帮助。

这是语法

when
    $map: Map( this["data1"].equals("dataOutput1") ) || Map( this["data2"].equals("dataOutput2") && this["data3"].equals("dataOutput3") )

当在同一个括号内时,不需要再次输入类名。