我有以下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
运算符,它不区分大小写?
答案 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}