ENV:camunda 7.4,BPMN 2.0
给定一个进程,该进程可以由多个启动消息事件启动。
一些API,例如IncidentMessages?
答案 0 :(得分:1)
这不是开箱即用的功能,但应该通过使用流程变量轻松构建。
基本步骤是:
public class MessageStartEventListener implements ExecutionListener {
public void notify(DelegateExecution execution) throws Exception {
execution.setVariable("startMessage", "MessageName");
}
}
请注意,通过DelegateExecution#getBpmnModelElementInstance
,您可以访问侦听器附加到的BPMN元素,因此您可以动态确定消息名称。
<process id="executionListenersProcess">
<startEvent id="theStart">
<extensionElements>
<camunda:executionListener
event="start" class="org.camunda.bpm.examples.bpmn.executionlistener.MessageStartEventListener" />
</extensionElements>
<messageEventDefinition ... />
</startEvent>
...
</process>
请注意,使用BPMN解析侦听器,您可以以编程方式将此类侦听器添加到每个流程定义中的每个消息启动事件。请参阅this example。
RuntimeService runtimeService = processEngine.getRuntimeService();
List<ProcessInstance> matchingInstances = runtimeService
.createProcessInstanceQuery()
.variableValueEquals("startMessage", "MessageName")
.list();