概述
Activiti是一个工作流引擎,Activiti可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言(BPMN2.0)进行定义,业务系统按照预先定义的流程进行执行,实现了业务系统的业务流程由Activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量。
BPMN(Business Process Model And Notation)业务流程模型与符号。是由BPMI开发的一套标准的业务流程建模符号,使用BPMN提供的符号可以创建业务流程。
- startEvent:业务流程的开始事件
- user Task:业务流程审批岗位
- Gateways:Exclusive gateway排他网关、parallel gateway平行网关
- End Event:业务流程的结束事件
一、环境准备
JDK | SpringBoot | Activiti |
---|---|---|
jdk-8u211 | 2.3.6RELEASE | 7.1.0.M6 |
idea中安装插件BPMN visualizer
二、项目结构
项目使用Maven构建,使用IntelliJ IDEA 2022.1.4开发,实现的主要功能点:流程节点创建部署、开启流程实例、流程节点审批、查询任务流程列表
Maven依赖
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M6</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.9</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
bootstrap.yml
server:
port: 8084
spring:
application:
name: spring-activiti
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/study?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT
username: root
password: root
jpa:
show-sql: true
activiti:
history-level: full
db-history-used: true
check-process-definitions: true
database-schema-update: false
三、接口代码实现
1. resource目录下新建测试审批流程.bpmn20.xml
2. 使用插件打开bpmn视图编辑器,设置岗位名称、审批人。审批候选人等审批节点信息
微服务启动,Activiti7会根据配置信息自动创建25张数据库表,有些版本的Activiti是17张表,而在配置信息中:database-schema-update表示服务启动更新数据库操作
数据库表分三类:act_hi_为历史节点信息表;act_ru_为运行中任务信息表;其他的都是Activiti配置信息表
代码测试:
- 部署流程:部署成功,生成流程部署ID
- 开启流程实例:流程实例ID是流程部署生成的,数据库表查询
- 审批流程任务
- 查询任务列表
四、小结
设置一个审批流程,并且可以将接口与页面结合使用,实现简单的基础功能,但是对于单行网关或者并行网关,流程中的信息参数初始化,可以单独定义初始化信息,后续补上,官方文档可参考学习:www.activiti.org/userguide/