如何从Drools 4.x中的决策表中检索事实对象
我们的团队正在使用Drools规则流进行评估。现在我们计划迁移到决策表 在Drools ruleflow版本中,我们曾经拥有DRL文件,这些文件具有查询组件,用于从工作内存中提取在DRL文件上下文中创建的对象 我被困在决策表中做同样的事情?我们正在使用StatefulSession来触发规则。此外,这些事实被插入规则的RHS中;我们在发射时没有FactHandles 用于引导Drools规则引擎的代码如下:如何从Drools 4.x中的决策表中检索事实对象,drools,rule-engine,business-rules,drools-flow,Drools,Rule Engine,Business Rules,Drools Flow,我们的团队正在使用Drools规则流进行评估。现在我们计划迁移到决策表 在Drools ruleflow版本中,我们曾经拥有DRL文件,这些文件具有查询组件,用于从工作内存中提取在DRL文件上下文中创建的对象 我被困在决策表中做同样的事情?我们正在使用StatefulSession来触发规则。此外,这些事实被插入规则的RHS中;我们在发射时没有FactHandles 用于引导Drools规则引擎的代码如下: RuleBase ruleBase = RuleBaseFactory.newRuleB
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
StatefulSession session = ruleBase.newStatefulSession();
MyFacts nmrs = new MyFacts();
session.insert(nmrs);
session.fireAllRules();
query "resultQuery"
response : Outcome()
end
用于检索查询的drools文件如下所示:
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
StatefulSession session = ruleBase.newStatefulSession();
MyFacts nmrs = new MyFacts();
session.insert(nmrs);
session.fireAllRules();
query "resultQuery"
response : Outcome()
end
谢谢目前还不直接支持XLS决策表中的查询。但是,决策表编译到drl本身,因此可以通过编程方式在事实之后向drl添加查询(可能在单独的drl文件中)
您还可以获取所有事实句柄的集合,并(丑陋地)迭代查找结果的实例,等等 当我尝试在带有StringReader(queryString)的package builder中将查询添加为addPackageFromDRL时,由于某种原因它失败了。我不得不对最后一个规则文件做一个可怕的修改