2

我是 Camunda BPMN 2.0 的新手,我需要有关如何实现和使用从一个池到另一个池的发送和接收任务的帮助。

4

1 回答 1

7

将 JavaDelegate 实现附加到发送任务:

<sendTask id="sendTask" camunda:class="org.camunda.bpm.MySendTaskDelegate" />

在 中MySendTaskDelegate,将消息与另一个流程实例中的接收任务相关联:

public class MySendTaskDelegate implements JavaDelegate {

  public void execute(DelegateExecution execution) throws Exception {

    execution.getProcessEngineServices()
      .getRuntimeService()
      .createMessageCorrelation("someMessage")
      .processInstanceBusinessKey("someBusinessKey")
      .correlate();

  }

}

这假设,

  1. 等待的流程实例有一个 value 的 businessKey someBusinessKey。可以在启动流程实例时提供业务密钥。
  2. 等待的流程实例有一个带有消息名称的接收任务someMessage。接收任务的消息名称可以使用<message ... />元素在 BPMN 2.0 xml 中指定。请参阅:http ://docs.camunda.org/latest/api-references/bpmn20/#tasks-receive-task
于 2014-06-18T06:48:08.270 回答