一、流程
表结构参考
1. 初始化数据
对应本项目中的类 ActivitiConfig.java
注意:
方式二:还可以使用xml的方式去配置(用bean标签去管理),将xml加入到流程引擎配置类,再通过配置类得到流程引擎
方式三:通过流程引擎ProcessEngines直接获取默认的流程引擎(必须先创建默认命名的activiti.cfg.xml)
1.1创建流程引擎的配置
本项目使用的是动态数据源
注意:如果这里配置的是drop-create,在部署完流程启动流程时会报错,找不到,需要改为true后重新部署才能启动
理解Spring实例化Bean的方式
1.2 理解七大Service类
Service参考
ProcessInstance和Execution的区别
ProcessInstance流程实例
Execution执行实例
这两个类只有在流程出现分支时才有区分(一个分支就是一个执行实例,流程实例特指流程从开始到结束的那个最大的执行分支)
ID小结
2. 画流程图
2.1 原生
节点为Task–user task
使用main config的assignee设置节点办理人
注意:需修改process的id和name为.bpmn的文件名(选中空白区可设置)
3. 流程部署
路径设置
文件前加/代表从classpath根目录下找资源
不加/代表从当前包找资源
涉及的表
4、启动流程
注意:在key相同的情况下,会启动最新版本的流程
涉及的表
实例
使用业务ID businessKey和流程变量variables
5、查询任务
实例
思路:条件,排序,结果集
查询个人任务(act_ru_task)
查询当前流程实例(ACT_RU_EXECUTION)
查询历史任务(ACT_HI_TASKINST)
查询历史流程实例(ACT_HI_PROCINST)
ACT_HI_ACTINST历史活动节点表,每个流程实例的每个节点的活动
6、办理任务
理解:张三办理任务后
- act_ru_task表中张三的任务已经没有了,现在保存的是下一个办理人李四的任务
- ACT_RU_EXECUTION:当流程中的办理人全部完成任务时,表中的数据行才会清空
- ACT_RU_IDENTITYLINK表中有2条数据(张三和李四的),当流程中的办理人全部完成任务时,表中的数据行会清空,如果需要查询历史数据去历史数据表查询ACT_HI_ACTINST历史流程、ACT_HI_IDENTITYLINK历史办理人
涉及的表
实例
判断流程是否完成
作用:更新业务表里面的状态
思路:ACT_RU_EXECUTION:当流程中的办理人全部完成任务时,表中的数据行才会清空,即流程实例为空
7、管理流程定义
7.1 查询流程部署信息(ACT_RE_DEPLOYMENT)
前提是流程已部署
7.2 查询流程定义信息(ACT_RE_PROCDEF)
7.3 删除流程定义
根据流程部署ID删除
注意:已经启动的流程无法删除(外键约束),除非设置参数为true
删除所有key相同的不同版本的流程定义
思路:已知key,查出部署ID,再根据部署ID删除
7.4 修改流程定义
注意:这里实际是新增流程,重新部署,key不变时,版本号会加一(在key相同的情况下,会启动最新版本的流程)
7.5 查询流程图
根据流程定义ID查询
从(ACT_RE_PROCDEF)中获取流程定义ID
根据流程部署ID查询
查询最新版本的流程定义
理解:这里是利用流程的KEY作为map的key,版本号升序排列的list作为value依次put,留下的就是不同KEY的最新版本的数据
8、流程变量(ACT_RU_VARIABLE)
ACT_RU_VARIABLE运行流程变量表
ACT_HI_VARINST历史流程变量表
启动流程时设置
作用范围:只针对一个流程实例
流程运行中设置
方法一:
注意:这里的user对象必须实现了序列化接口,并且包含序列化版本号属性(否则中间对类进行修改后无法正常获取到流程变量,需要重新设置流程变量后获取)
方法二:
setVariable和setVariableLocal的区别
setVariable:流程变量名称相同时会覆盖前值
setVariableLocal:流程变量名称相同时,以节点的任务ID作为标识存放多条数据行
获取流程变量
查询历史流程变量(ACT_HI_VARINST)
9、连线(使用流程变量控制流程走向)
办理任务
10、排他网关
不同的流程变量走不同的分支,根据流程变量选择一条分支进行
11、并行网关
12、接收任务(节点为receive task)
即等待活动
13、个人任务
使用流程变量指定办理人
启动流程时使用流程变量指定办理人
办理任务时使用流程变量指定下一个办理人
使用监听器类指定办理人
监听器实现TaskListener
此时办理任务时就不需要指定办理人了,监听器会自动去设置
14、组任务
多个人可以看到,但只需要一个人办理
涉及的表
查询组任务
任务拾取和回退:将组任务变成个人任务
使用流程变量指定
启动流程时指定
使用监听器类指定
15、用户和用户组
涉及的表
16、整合SSM
二、使用
1、运行
下载activiti包
解压后,将activiti-explorer.war文件放置到tomcat安装目录的webapps文件夹
重启tomcat 会自动解压activiti-explorer.war文件
浏览以下网址:
http://localhost:8080/activiti-explorer
账号 | 密码 | 角色 |
---|---|---|
kermit | kermit | admin |
gonzo | gonzo | manager |
fozzie | fozzie | user |
重启tomcat的方式:进入Tomcat的bin目录,运行./startup.sh
关闭Tomcat的方式:./shutdown.sh
2、安装actibpm插件
参考:https://blog.csdn.net/qq_67929543/article/details/125343525
将官网的jar下载后,用压缩软件打开,更改内部的配置,再打成可以安装使用的jar
打包方式:
cd 目标文件夹
jar cvf 目标文件夹名称.jar foo/ .