如何从Drools 4.x中的决策表中检索事实对象

时间:2010-02-17 22:53:06

标签: drools rule-engine business-rules drools-flow

我们的团队正在使用Drools规则流进行评估。现在我们计划迁移到决策表。

在Drools规则流版本中,我们曾经有过具有查询组件的DRL文件,用于从工作内存中提取在DRL文件上下文中创建的对象。

我坚持在决策表中做同样的事情?我们使用StatefulSession来触发规则。而且,这些事实被插入规则的RHS中;我们在解雇它们时没有FactHandles。

用于引导Drools规则引擎的代码如下:

RuleBase ruleBase = RuleBaseFactory.newRuleBase();
StatefulSession session = ruleBase.newStatefulSession(); 
MyFacts nmrs = new MyFacts();
session.insert(nmrs);
session.fireAllRules();

用于检索查询的drools文件如下所示:

query "resultQuery"
    response :  Outcome()
end

由于

1 个答案:

答案 0 :(得分:0)

目前,XLS决策表中的查询没有直接支持。但是,决策表可以编译为drl本身 - 因此可以在事件之后以编程方式将查询添加到drl(可能在单独的DRL文件中)。

您还可以通过查找结果等等来获取所有事实句柄和(丑陋)迭代的集合...