Drools 规则流程设计

Posted

技术标签:

【中文标题】Drools 规则流程设计【英文标题】:Drools rule flow design 【发布时间】:2014-04-17 20:30:26 【问题描述】:

我最近开始研究流口水。我只是设计一个简单的应用程序来更好地理解它。

我有一个.drl 文件,其中包含一些“when”、“then”格式的规则。我在.bpmn 文件中设计了一个流程图(都用于同一个项目)。我不想在我的流程图中明确设置约束。

我可以在.drl 文件中为我的流程图设置约束吗? 因此,当我一起运行所有进程和规则时,我的.drl 文件应该为我的.bpmn 设置约束。我尝试通过使用一些全局变量来做到这一点。不过我对工作并不满意。 如果有人能帮助我,那就太好了。

另外,是否可以为具有我感兴趣的属性的规则流设计自己的块?这只是出于好奇。

谢谢

【问题讨论】:

【参考方案1】:

如果您想在流程中评估 .drl 文件中的一组规则,则应使用规则任务,其中规则任务的 ruleflow-group 属性与 ruleflow-group 规则头属性匹配(因此那些规则如果进程到达规则任务节点将激活。

如果您想从流程中传递参数,您可能应该在规则任务上使用入口脚本,在执行规则之前将相关数据插入工作内存中。如果您想从规则评估中获得结果,您可能需要在 on-entry 脚本中插入一些对象(这是您的流程中的一个变量),在规则中确保您在该对象上设置结果,然后在退出脚本检索该值,以便您可以使用 if(例如将其存储在变量中)。

【讨论】:

以上是关于Drools 规则流程设计的主要内容,如果未能解决你的问题,请参考以下文章

什么时候使用规则引擎drools

将drools引导决策表编译成规则

Drools文档 规则语言参考

Drools笔记:初识与入门

使用Drools来实现规则引擎

Drools 规则引擎一文读懂