java - 流口水规则中的多个 boolean 条件?

标签 java drools rule-engine

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

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

上述条件工作正常。 现在如何在规则中添加多个 boolean 条件? 例如。上述规则可以概括为: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

但是我得到了以下异常

Error Messages: Message [id=1, level=ERROR, path=mapIterationRules.drl, line=13, column=0 text=[ERR 101] Line 13:21 no viable alternative at input '(' in rule "first rule"]

谢谢

最佳答案

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

这是语法

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

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

关于java - 流口水规则中的多个 boolean 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37879457/

相关文章:

java - 当我们使用空花括号分配数组时,内存中到底发生了什么?

java - 为什么java库的编码如此不可读?

java - JBoss Guvnor,我可以在声明性模型中创建数组和/或映射吗?

java - 在 drools 的 statelessKieSession 中插入列表作为事实

java - 使用 Java 的非阻塞多线程 MySQL

java - 基数排序,r的值

c# - .NET 的规则引擎

ruby - 设计模式/关于构建规则引擎的建议

java - 如何在 Drools 中处理动态 Json/类?

c# - 以编程方式从字符串创建 WWF RuleCondition