一、介绍
activiti把业务系统中复杂的业务流程抽取出来,使用建模语言BPMN2.0进行定义,实现了业务流程由activiti进行管理,减少了由于流程变更进行系统升级改造的工作量,减少了开发和维护成本。
使用步骤
- 部署activiti
使用activiti工具类生成25张表。 - 流程定义
- 流程定义部署
- 启动一个流程实例
- 用户查询待办任务
- 用户办理任务
- 流程结束
数据库支持
activiti的表结构
一般数据 | 历史记录 | 流程定义 | 运行实例 |
---|---|---|---|
GE | HI | RE | RU |
使用25张表。
类关系图
二、入门案例
- 定义流程
- 部署流程
- 启动流程
流程符号——BPMN2.0
- 事件
- 活动
- 网关
- 流向
三、流程操作
删除流程定义
如果开启了流程实例,在删除流程定义时会失败。此时设置成级联删除,可以先后删除流程实例和流程定义。
下载流程资源文件
使用commons-io.jar实现输入流和输出流的转化。
四、Activiti进阶
流程实例
实现businessKey的关联
流程的挂起和激活
个人任务
分配任务负责人
- 固定分配
- 表达式分配
UEL表达式,属于Java EE6规范 - 监听器分配
流程变量
作用域:global、local
使用:属性上、连线上
设置流程变量:UEL-value、UEL-method
组任务
负责人和候选人的区别
个人任务和组任务的区别
网关
排他网关:只执行一个分支
并行网关:fork+join,分支和汇聚
包含网关:排他+并行
五、Activiti7与SpringBoot整合开发
- 直到Activiti7发布之后,才完全支持SpringBoot2.x整合。
- 默认集成了SpringSecurity安全框架。
环境搭建
- ideaU2019
- MySQL5.7
- maven插件
- actiBPM流程设计插件
ideaC不支持Diagrams,ideaU支持