在Drools中使用DSL中的{x} .field

时间:2012-06-08 15:56:30

标签: dsl drools

我有以下Drools DSL"句子":

[when]The field {field} in the module {module} contains value {value}=$a : {module} ( {field} != null)
      String( this.equalsIgnoreCase("{value}") ) from $a.{field}

其中field是字符串的Set

现在,如果我有两个这样的规则,它显然不会起作用,因为变量$a出现两次。所以我想改进规则来制作变量,变量:

[when]The field {field} in the module {module} contains value {value} as {a}={a} : {module} ( {field} != null)
      String( this.equalsIgnoreCase("{value}") ) from {a}.{field}

这不起作用,我无法使用中断的部分{a}.

所以,我的问题是:是否有重写规则的方法或允许{variable}.符号工作的方法?或者,是否有一个contains运算符,它不区分大小写?

1 个答案:

答案 0 :(得分:2)

在订阅Drools-Users邮件列表后,我得到了答案:

http://drools.46999.n3.nabble.com/rules-users-Using-from-x-field-in-DSL-tt4017872.html

摘要:DSL解析器中的错误,作为一种解决方法,在RHS上的变量之后添加一个额外的字母:... as {a}={a}x (...) ... from {a}x.{field}