Drools和Maps编译错误

时间:2014-02-15 17:26:12

标签: drools

我的规则条件和行动定义如下。我收到编译错误。在规则条件下,我将左右值指定为'abc'和'xyz'  哪些值存储在Me对象的MAP中。当我在动作部分中使用me.getVariableValues('abc')时,它的工作正常。但当 我想在条件中使用相同的me.getVariableValues('abc')然后我得到低于编译错误。

创建规则包时出错 - [139,0]:unknown:139:0不匹配令牌:[@ 463,2378:2383 ='me',< 7>,139:0];期待类型RIGHT_PAREN [140,37]: unknown:140:37意外的标记')'[140,39]:unknown:140:39意外的标记'abc'

规则“规则”

我是:我()

getValue(me.getVariableValues(),$ {condition.leftVariableCode})$ {condition.operator} 的getValue(me.getVariableValues(),$ {condition.rightVariableCode})

然后

me.addVariableValue(“$ action.output.variableCode”,me.getVariableValue(“$ action.firstInput.VariableCode”)$ action.operator me.getVariableValue( “$ action.secondInput.VariableCode”));

1 个答案:

答案 0 :(得分:0)

具有给定Me类声明的正确规则将是

Me( $vv: variableValues )
Map( this["key"] == 42 ) from $vv

Me( $vv: variableValues )
Map( this["foo"] < this["bar"] ) from $vv

如果您发布了速度模板,那么它就会被破坏。

如果您在展开模板后发布了结果,则模板和扩展机制都会中断。