Drools多流顺序执行

时间:2014-06-25 11:55:04

标签: java drools

情景:

我希望一个接一个地执行多个Drools流程。

也就是说,我有一个输入,我会将它传递给我的第一个DRL / XLS文件。第一个流程的输出将作为第二个DRL的输入。

我的问题是,DROOLS是否有能力依次执行一个接一个的流程。如果是这样,怎么样?

直到现在,我猜测只能通过Java代码来实现,我想避免这种情况。

谢谢

4 个答案:

答案 0 :(得分:2)

您可以将所有规则放在不同的议程组中,并将所有规则加载到知识库中。在每个议程组中,保留一条将激活下一个议程组的规则,如下所示:

rule "agenda-group-activation"
dialect -1000
agenda-group "ag1"
   When 
        //some conditions
   Then
        drools.setFocus("nextAgendaGroup");
end

希望这会对你有所帮助。

答案 1 :(得分:1)

尝试使用规则流图。您可以在其中使用子流程。使用此功能,您可以创建一个将调用子流的主流,在这些子流中,您可以在特定的规则流组下标记规则。如果你能准确地告诉方案,我可以提供深入的答案。感谢。

答案 2 :(得分:0)

您可以使用agenda-group "SomeGroupName"标记两个DRL文件。您的第一个DRL文件可能具有激活第二个议程组的触发规则。

答案 3 :(得分:0)

使用规则流,您可以灵活地执行序列,并且如果您希望重新执行/重用当前执行线程中的相同规则,这些规则也可以使用规则流。

有一个规则流组属性,用于在执行的微粒时间激活规则。将第一个流的输出传递给另一个流可以通过声明输入参数并设置它们来实现。

您可以在eclipse中使用BPMN编辑器插件来实现此功能。