2010-04-22 43 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(變量>的東西)