如何使用Camunda BPMN发送任务和接收任务

Elv*_*kid 1 camunda

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

小智 5

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

<sendTask id="sendTask" camunda:class="org.camunda.bpm.MySendTaskDelegate" />
Run Code Online (Sandbox Code Playgroud)

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

public class MySendTaskDelegate implements JavaDelegate {

  public void execute(DelegateExecution execution) throws Exception {

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

  }

}
Run Code Online (Sandbox Code Playgroud)

这假定,那

  1. 等待流程实例具有值的businessKey someBusinessKey.启动流程实例时可以提供业务键.
  2. 等待进程实例具有带消息名称的receive任务someMessage.可以使用该<message ... />元素在BPMN 2.0 xml中指定接收任务的消息名称.请参阅:http://docs.camunda.org/latest/api-references/bpmn20/#tasks-receive-task