需求:项目需要引入相关的工作流框架,为了熟悉相关的工作流框架,选择了Activiti7.0和SpringBoot集成进行相关学习
1、引入相关maven依赖包
<properties>
<activiti.version>7.1.0.M5</activiti.version>
</properties>
<!-- 引入activiti7依赖 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-image-generator</artifactId>
<version>${activiti.version}</version>
</dependency>
2、Activiti的相关yaml配置
spring:
#Activiti7配置
activiti:
# 自动部署验证设置:true-开启(默认)、false-关闭
check-process-definitions: false
#自动创建表
#database-schema-update: drop-create
database-schema-update: false
#使用历史表
history-level: full
db-history-used: true
# 关闭自动部署
deployment-mode: never-fail
#自动部署文件路径前后缀
#process-definition-location-prefix: classpath:/bpm/
#process-definition-location-suffixes: **.bpmn,**.bpmn20.xml
3、引入测试案例的bpmn文件(askForLeaveBpm.bpmn)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" 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" xmlns:tns="http://www.activiti.org/test" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1620381003109" name="" targetNamespace="http://www.activiti.org/test" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="myProcess_1" isClosed="false" isExecutable="true" processType="None">
<startEvent id="_2" name="开始"/>
<userTask activiti:assignee="${pm}" activiti:exclusive="true" id="_3" name="项目经理审批"/>
<userTask activiti:assignee="${bm}" activiti:exclusive="true" id="_4" name="部门经理审批"/>
<endEvent id="_5" name="结束"/>
<sequenceFlow id="_8" sourceRef="_4" targetRef="_5"/>
<sequenceFlow id="_6" sourceRef="_2" targetRef="_3"/>
<exclusiveGateway gatewayDirection="Unspecified" id="_7" name="排他网关"/>
<sequenceFlow id="_9" sourceRef="_3"