Spring integration 从Spring集成EIP消息流触发Activiti BPMN进程

Spring integration 从Spring集成EIP消息流触发Activiti BPMN进程,spring-integration,activiti,bpmn,Spring Integration,Activiti,Bpmn,我正在研究Activiti BPMN流程,以及它们如何最好地与Spring Integration EIP消息流交互。具体地说,我想知道触发activiti BPMN进程以在Spring集成消息流末尾执行的最干净或最好的方法是什么 e、 g.我是否应该从EIP流中的最终服务激活器方法触发BPMN流程的消息启动事件 runtimeService.startProcessInstanceByMessage(messageName, processVariables); e、 g.我是否应该从EIP

我正在研究Activiti BPMN流程,以及它们如何最好地与Spring Integration EIP消息流交互。具体地说,我想知道触发activiti BPMN进程以在Spring集成消息流末尾执行的最干净或最好的方法是什么

e、 g.我是否应该从EIP流中的最终服务激活器方法触发BPMN流程的消息启动事件

runtimeService.startProcessInstanceByMessage(messageName, processVariables);
e、 g.我是否应该从EIP流中的最终服务激活器方法触发BPMN流程的无启动事件

runtimeService.startProcessInstanceById(processDefinitionId, variables);
e、 g.是否有其他更合适的接口方法

提前感谢,,
PM.

我们将Activiti/Spring与Spring集成和AMQP消息传递一起使用。 为了启动流程,我们使用第二种方法调用runtimeService().startProcessInstanceByKey()以确保启动预期的工作流(仅一个)

所以你的选择取决于你想要什么。。。 如果要启动的消息和工作流之间存在一对二对一关系,请使用第二种方法

当您向活动引擎触发消息时(第一种方法),这可能会启动多个工作流,具体取决于您的工作流的设计方式以及它们侦听的消息。 考虑让两个工作流监听同一条消息。它们都将启动。
但也许这正是你想要的(我不知道)。

Hi@NeoP5,谢谢你的回答。事实上,对于我的用例,我采用了第一种方法,因为其目的是启动一个特定的活动过程,而不是多个不同的过程。干杯,下午。