流程的业务描述
财务报账审批流程:
如果财务主管接到审批任务,发现金额只有500时,自己审批完流程结束
如果财务主管接到审批任务,发现金额是1000时,审批完以后转给财务经理继续审批,财务经理审批完流程结束
先获取连接
private ProcessEngine processEngine;
@Before
public void initProcessEngine(){
processEngine = ProcessEngines.getDefaultProcessEngine();
}
流程定义与部署
@Test
public void testProcessDeployment(){
Deployment deployment = processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource("diagram/approve.bpmn")
.addClasspathResource("diagram/approve.png")
.name("财务报账")
.deploy();
System.out.println("流程部署ID:"+deployment.getId());//60001
System.out.println("流程的名称:"+deployment.getName());
}
流程图
approve.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="approve" name="approveProcess" isExecutable="true">
<startEvent id="startevent1" name="Start"></startEvent>
<userTask id="usertask1" name="报账申请" activiti:assignee="王五"></userTask>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
<userTask id="usertask2" name="财务审批" activiti:assignee="赵六"></userTask>
<sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
<endEvent id="endevent1" name="End"></endEvent>
<sequenceFlow id="flow3" sourceRef="usertask2" targetRef="endevent1"></sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_approve">
<bpmndi:BPMNPlane bpmnElement="approve" id="BPMNPlane_approve">
<bpmndi:BPMNShape