我正在使用AgendaFilter來決定是否應該執行規則激活。 作爲我工作記憶事實的一部分,我根據規則插入一個「規則配置」事實,其中包含我的規則被允許執行的頻率(以及相應的計數器)。 我注意到Match.getFactHandles()
只返回'創建此匹配'的事實(按照java文檔)。 有沒有辦法訪問WorkingMemory及其所有事實,還是我基本上必須聲明我的「規則配置」事實作爲我的條件的一部分?舉例來說明:現在我做了類似下面這樣的事情,我想知道我是否可以在規則中聲明$ruleConfig
事實,但仍然可以在AgendaFilter中查找它。在drools中,我可以從AgendaFilter中訪問工作記憶(或任意事實)嗎?
rule "abc"
@uid("1234")
when
$ruleConfig : RuleConfig(uid="1234")
// insert the actual rule conditions
...
謝謝! (我知道我可以用控制事實完全解決這個問題,但是由於架構的原因,我希望儘可能避免使用實際的規則代碼,因此AgendaFilter)
謝謝,當然! (呃,我爲什麼不自己想起那個POJO的東西:)) – Sebastian