1. 启动一个部署的流程
在Activiti中,启动了一个流程后,就会创建一个流程实例(ProcessInstance),
简单来说流程实例就是根据一次(一条)业务数据用流程驱动的入口
Execution的含义就是一个流程实例(ProcessInstance)具体要执行的过程对象。
两者的对象映射关系:ProcessInstance(1)—>Execution(N),其中N >= 1。 每个流程实例至少会有一个执行流(execution),如果流程中没有分支,则N=1,如果流程中出现了分支,则N>1
2. 部署流程阶段产生的数据
部署流程 直接加载bpmn文件和图片文件
select * from act_re_deployment; -- 工作流部署表
select * from act_ge_bytearray; -- 存储二进制相关文件
select * from act_re_procdef; -- 流程定义数据
其中 act_re_procdef 表中的 RESOURCE_NAME_ 字段 = act_ge_bytearray中NAME_字段 如果key相同,进行第二次部署的时候,原有key的流程上版本叠加
id: key:version:随机值
name: 对应流程文件process节点的name属性
key: 对应流程文件process节点的id属性
version: 发布时自动生成的,如果第一次发布的流程,version默认从1开始; 如果当前流程引擎中已经存在相同key的流程,则找到当前key的最高版本号,在最高版本号上加1
3. 流程启动阶段产生的数据
启动一个流程时:可能有多个流程对象数据(ID_),但只有一个流程实例(字段PROC_INST_ID_)。
select * from act_ru_execution; -- 正在运行的流程对象。
select * from act_hi_procinst; -- 历史流程实例表
select * from act_ru_task; -- 任务表
select * from act_hi_taskinst; -- 历史任务实例表
select * from act_hi_actinst; -- 历史所有经过的活动
4. 变量设置对应表数据
(1)在流程实例上添加变量:影响的范围,当前流程实例下的所有任务都能够获取到该变量,正在执行的流程对象也能够获取到变量
(2)当流程实例结束后:流程变量消失,正在执行的对象消失,流程变量历史表保留变量
影响的表如下:
select * from act_ru_variable; -- 存储运行时变量的表
select * from act_hi_varinst; -- 存储流程变量的历史表
5. 办理任务对应表数据
完成某个代理人的某个任务
5.1 当(流程没有结束的情况下)
select * from act_ru_execution; -- 正在活动的ACT_ID_指到下一个节点
select * from act_hi_procinst; -- 历史流程实例表:如果不是最后一个几点,此处不会变
select * from act_ru_task; -- 任务表: 删除当前实例上一步的任务,产生当前的任务数据
select * from act_hi_taskinst; -- 历史任务实例表: 增加一条当前的任务数据
select * from act_hi_actinst; -- 历史所有经过的活动: 增加一条当前的任务数据
5.2 当(流程结束的情况下)
select * from act_ru_execution; -- 正在运行的流程对象消失,从表中自动删除
select * from act_hi_procinst; -- 历史流程实例表:完成,并且endtime字段产生
select * from act_ru_task; -- 任务表: 当前实例的任务消失,从表中自动删除
select * from act_hi_taskinst; -- 没有变化
select * from act_hi_actinst; -- 增加一个endeven事件
在流程执行的过程中,创建的流程实例ID在整个流程执行过程中都不会变化,当流程结束后,流程实例会在正在执行的流程对象表中删除act_ru_execution