2010-04-22 64 views
0

我想声明一个全局变量,其范围仅限于我的规则文件。 例如:变量$ reUseMe只声明一次。Drools 5.0 - 本地...全球

规则1

$ reUseMe:POJO(VAL = 1) //其他条件

规则2

$ reUseMe> VAL

+0

我只是将其插入工作记忆中。试图不这样做。 – whitespy9 2010-04-23 15:35:50

回答

2

有没有范围的全局变量,但在某些情况下,排除遗传帮助。

rule "Rule 1" 
    when 
    $reUseMe :POJO(val == 1) 
    then 
end 

rule "Rule 2" extends "Rule 1" 
    when 
    # You can use the variables from Rule 1 
    POJO(val > $reUseMe.val) 
    then 
end 

只添加LHS。规则1中的RHS在规则2中被忽略。

+0

这很有帮助。 你能分享一个链接到任何文档吗? 谢谢! – whitespy9 2010-05-06 13:06:52

+0

我只能找到这个博客条目,检查“类别规则”http://blog.athico.com/2008/10/while-everyone-was-having-fun-at-orf.html 这就是它的使用方法在Guvnor中,但在DRL中,如同我的示例中那样使用它,它所做的是复制规则2顶部的规则1的条件。这样,您可以使用规则2中规则1中的所有变量和条件。 – 2010-05-07 11:21:22

3

则可以通过参考在全局LHS eval:

global Some变量

规则... 时 ... 的eval(变量>的东西)