项目初始化
创建Springboot2.1.x项目,引入flowable依赖
org.flowable
flowable-spring-boot-starter
6.3.0
流程定义
定义工作流所用的xml文件,我这是使用的docker+flowable_ui
-
docker run -p 8086:8080 flowable/flowable-ui -d 本地快速部署flowable_ui
-
http://localhost:8086/flowable-ui/ 访问页面,默认账号密码是 admin/test
-
创建流程,或根据已有的bpmn xml导入为流程图,流程创建/修改完后再下载,我这里创建的是一个相对简单的流程,流程节点包含 开始、需求上报、指定人审批、领导审批、需求表单、结束,
<?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:flowable="http://flowable.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.flowable.org/processdef" exporter="Flowable Open Source Modeler" exporterVersion="6.8.0">
<process id="request_flow" name="需求生命周期" isExecutable="true">
<documentation>需求生命周期简化版</documentation>
<startEvent id="startEvent1" name="开始" flowable:formFieldValidation="true"></startEvent>
<userTask id="req_propose" name="需求上报" flowable:assignee="${applyUser}" flowable:formFieldValidation="true">
<extensionElements>
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
</extensionElements>
</userTask>
<sequenceFlow id="sid-769918D6-7E1F-4529-9DC8-077564D0B9C2" sourceRef="startEvent1" targetRef="req_propose"></sequenceFlow>
<userTask id="approved_by_approver" name="指定人审批" flowable:assignee="11" flowable:formFieldValidation="true">
<extensionElements>
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
</extensionElements>
</userTask>
<userTask id="approved_by_manager" name="领导审批" flowable:assignee="12" flowable:formFieldValidation="true">
<extensionElements>
<flowable:taskListener event="assignment" class="com.zhaok.demo.handler.AutoTaskApproveListener"></flowable:taskListener>
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
</extensionElements>
</userTask>
<userTask id="communicate" name="需求表单" flowable:assignee="20" flowable:formFieldValidation="true">
<extensionElements>
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
</extensionElements>
</userTask>
<sequenceFlow id="sid-80619D9F-DC58-44C0-BAA0-E251051A0990" sourceRef="approved_by_manager" targetRef="communicate"></sequenceFlow>
<endEvent id="sid-7AC4C2DE-5739-4A7D-A880-AAA80EE00ED5" name="结束"></endEvent>
<sequenceFlow id="sid-6CE4129E-9499-4B4C-B17D-AA5C154A4329" sourceRef="communicate" targetRef="sid-7AC4C2DE-5739-4A7D-A880-AAA80EE00ED5"></sequenceFlow>
<sequenceFlow id="sid-470B2F01-6CCD-430C-8DBB-CA888B8E47F4" sourceRef="req_propose" targetRef="approved_by_approver"></sequenceFlow>
<exclusiveGateway id="sid-51B59582-22C2-474F-99D4-ED55A6B12245"></exclusiveGateway>
<sequenceFlow id="sid-A09C523A-6C2F-4747-9967-407F9015ED38" sourceRef="approved_by_approver" targetRef