流程的业务描述 会议记录会签
并行网关是不需要设置流程变量的,并行网关不在流程变量的范围内
比如:
在开完某个产品设计会以后,需要对会议约定一些事项进行签字画押涉及到两个部门(产品部/研发部)的主管和经理
确认的顺序:
a:产品部的主管确认然后产品部的经理确认
b:研发部的主管确认 然后研发部的经理确认
注意:以上两个处理步骤可以同时进行,都完成以后,代表流程结束
先获取连接
private ProcessEngine processEngine;
@Before
public void intiProcessEngine(){
processEngine = ProcessEngines.getDefaultProcessEngine();
}
流程定义与部署
@Test
public void testProcessEngine(){
Deployment deployment = processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource("diagram/parallelGateWay.bpmn")
.addClasspathResource("diagram/parallelGateWay.png")
.name("并行会签")
.deploy();
System.out.println("流程部署ID:"+deployment.getId());//152501
System.out.println("流程部署名称:"+deployment.getName());
}
流程图
parallelGateWay.bpmn代码
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<process id="parallelGateWay" name="parallelGateWayProcess" isExecutable="true">
<startEvent id="startevent1" name="Start"></startEvent>
<parallelGateway id="parallelgateway1" name="Parallel Gateway"></parallelGateway>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="parallelgateway1"></sequenceFlow>
<userTask id="usertask1" name="产品主管确认" activiti:assignee="张三"></userTask>
<sequenceFlow id="flow2" sourceRef="parallelgateway1" targetRef="usertask1"></sequenceFlow>
<userTask id="usertask2" name="研发主管确认" activiti:assignee="王五"></userTask>
<sequenceFlow id="flow3" sourceRef="parallelgateway1" targetRef="usertask2"></sequenceFlow>
<userTask id="usertask3" name