1.操作一:流程部署
流程部署有两种方式,第一种是项目启动直接找resouces目录下的bmpn文件,另一种方式是外部部署,通过api直接部署到项目中。
1.1 如果是项目启动
(其中“南方尽调流程V3.bpmn”是没有部署过的新的流程文件)
关联表:
-
act_ge_bytearray [流程引擎二进制数据表]
只要发现有新的流程文件,所有的resouces下的bmpn和png文件都会重新写入此表。 -
act_re_deployment [流程部署表]
注意此表的name_和souce_字段,如果是工程启动部署,name_是工程的名称,source_是“process application” -
act_re_procdef [流程定义表]
-
act_ru_meterlog [流程日志表]
每隔15分钟执行一次
1.2 如果是远程部署
关联表:
-
act_ge_bytearray [流程引擎二进制数据表]
-
act_re_deployment [流程部署表]
注意此表的name_和souce_字段,如果是远程api部署,name_和source_是api参数里传过来的 -
act_re_procdef [流程定义表]
蓝色底的那条是新生成的,可以对比上一条(资源目录启动生成的),version_是不一致的,id也是有规律去别的
2.操作二:流程实例启动
关联表:
-
act_hi_actinst [历史的活动实例表]
-
act_hi_detail [历史流程变量运行详情表]
历史的流程运行变量详情记录表。流程中产生的变量信息,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。
可以看出,记录是区分类型“type_”的,对于表单变量,会记录两遍,以流程变量记录一遍,再以表单变量记录一遍,下面以“项目名称”为例看看这两个记录:
-
act_hi_identitylink[历史流程运行中关联的用户]
-
act_hi_procinst[历史流程实例表]
没有子流程时,这三个字段是一致的,此表中的id没有重新生成,而是直接借用的运行中实例的id -
act_hi_taskinst[历史任务实例表]
-
act_hi_varinst[历史流程变量表]
以“项目名称”举例:
此表跟act_hi_detail比较类似,具体区别后续再研究。
-
act_ru_execution[流程执行实例表]
这个表是执行实例表,实例的概念也在这个表中定义,如果一个流程中存在子流程或者存在并行会签流程,那么同一个PROC_INST_ID_会对应多个EXECUTION,
“ID_”:EXECUTION主键,这个主键有可能和PROC_INST_ID_相同,相同的情况表示这条记录为主实例记录。
“PROC_INST_ID_”:一个流程实例不管有多少条分支实例,这个ID都是一致的。
具体参考这篇文章:https://blog.csdn.net/zhongzk69/article/details/90956710
-
act_ru_meter_log[流程度量日志]
观察看,这个表每隔15分钟执行一次,具体作用待研究。
-
act_ru_task[流程运行任务表]
3.操作三:更换任务执行人
关联表:
-
act_hi_actinst [历史的活动实例表]
更改了此条记录。 -
act_hi_identitylink[历史流程运行中关联的用户]
这个表比较关键,新增了两条记录(注意这两条记录的id是一样的,两条记录通过“opration_type_”字段区分),原始记录保持不变。
蓝色底的是新增的两条记录,第三条是原始记录。
这个是删除动作记录,注意id跟以前不一样了,“opration_type_”是“delete”,
-
act_ru_task[流程运行任务表]
变更了“assignee_”字段
4.操作四:执行“用户任务”流程节点
关联表:
-
act_hi_actinst [历史的活动实例表]
修改了第二条,增加了第一条(蓝色底的),具体如下:
修改了这三个字段,“act_inst_state_”从0变为4(具体代表的意义需要查一下),"end_time_" 和“duration_”分别是本节点的审批时间和等待时间。 -
act_hi_identitylink[历史流程运行中关联的用户]
新增一条记录,下个节点的审批人记录,具体如下:
-
act_hi_op_log[操作历史日志]
具体如下:
"operation_type_"是操作类型,assign代表更换执行人
"property_"是操作的那个属性字段,本次是“assignee”字段
“org_value_”是流程定义文件的执行人,
“new_value_”是更换过的实际的执行人 -
act_hi_taskinst[历史任务实例]
新加了一条记录(蓝色底的),更新了上一条记录,更新的记录详情如下:
“assignee_”不知道是本次操作更改的,还是上一步更换执行人操作更改的,需要确认?
“priority_”,优先级,默认好像都是50,不知道数值怎么定义的,也需要确认?新增的记录详情如下:
-
act_ru_execution[流程执行实例表]
修改执行实例
“rev_”,乐观锁(版本)
“sequence_counter_”,从流程启动环节的3,变为现在的5,具体原理需要继续跟进? -
act_ru_task [流程运行任务表]
更新了原来的记录,详细如下:
可以看出,act_ru_task 只保存各个实例在当前执行任务节点的信息,历史记录在act_hi_taskinst中。 -
act_ru_task_meter_log
暂时不了解此表意义?
5.操作五:执行“用户任务”流程节点【带网关条件】
关联表:
-
act_hi_actinst [历史的活动实例表]
修了个第三条记录,新增了两条记录,第三条记录变更如下:
跟上一章类似,“act_inst_state_”也是从0变为4,具体意义后续跟进?
两条新加的记录如下:
-
act_hi_detail [历史流程变量运行详情表]
新增一条变量记录:
-
act_hi_identitylink[历史流程运行中关联的用户]
同上一章一样,新增一条下一审批节点的审批人:
-
act_hi_op_log[操作历史日志]
详细如下:
"operation_type_"是操作类型,complete代表完成这个任务
"property_"是操作的那个属性字段,本次是“delete”字段??如果按照上一章的理解,这个怎么解释??
“org_value_”是流程定义文件的执行人,
“new_value_”是更换过的实际的执行人 -
act_hi_taskinst[历史任务实例]
这个表跟“act_hi_actinst”的区别是,act_hi_taskinst只记录任务相关的历史操作,而act_hi_actinst记录的是整个审批流程的所有环节,包括“网关”等,可以对比本章的act_hi_actinst截图
更新上一条,新增一条(蓝色底的)
更新如下:
新增如下:
-
act_hi_varinst[历史流程变量表]
第二章提出疑问,act_hi_varinst和act_hi_detail什么区别,基于数据比较一下:
可以看出,detail表比varinst表多两条数据,varinst表只有projectName和checkArea对应的变量,而detail表不只有变量,还有这两个变量对应的表单属性:
-
act_ru_execution[流程执行实例表]
下面的红框中,是跟第四章中此表数据变化的地方:
“act_id_”是bpmn对象中本任务节点的id,
“act_inst_id_”是本实例活动任务节点的id,可以看出是有“act_id_”字段和“act_ru_task”表的本任务节点的id拼接成的。 -
act_ru_task [流程运行任务表]
可以看出,上一执行完的任务节点已经删除,新增了一条当前被执行任务节点的记录。
-
act_ru_task_meter_log
-
act_ru_variable
(本表保存流程实例执行过程中,所有关联到的流程变量。
如果流程实例完成,这些记录应该是被删除掉了,需要验证??)
新增一条记录:
“var_scope_”对应的是act_ru_excution表的执行实例的id
6.操作六:并行会签
本操作跟上一章的操作类似,主要是act_ru_excution表的处理有差别。下面具体看一下:
执行到“流程发起人发起会签”节点(此节点还没有动作时):
当执行完“流程发起人发起会签”节点,看一下act_ru_execution表的变化:
完整的横向对比:
可以看出,由原来的一条记录变为了4条记录(修改了一条,新增了三条)。
看一下被修改的刚才那条记录(红框中的是变化的值):
新增加了一条并行会签的主活动节点(不知道这么理解对不对?):
新增了2条以新增主活动节点为父节点的分支节点: