upp整体架构决定了我们的内部并不全依赖于核心组件,我们完全由能力在外围控制核心组件的行为,所以有必要回归下upp的整体结构:
基于(1)的分析,业务模型压缩方案基本确认。运行期需要压缩数据模型如下:
a.act_ge_bytearray:
这张表存储的是flowable中使用的大对象,如流程发布后的运行图/变量表中的大对象信息。运行图需要进行版本管理,所以不需要关注。
所以整个来看关注运行期变量/与历史沉积变量
--运行期总变量信息:
select *from act_ge_bytearray where DEPLOYMENT_ID_ is null and NAME_='var-flow_assignee'
--运行期有效变量信息:
select *from act_ge_bytearray where DEPLOYMENT_ID_ is null and NAME_='var-flow_assignee' and ID_ in(select BYTEARRAY_ID_ from act_ru_variable where BYTEARRAY_ID_ is not null)
--历史沉积变量信息
select * from act_ge_bytearray where DEPLOYMENT_ID_ is null and NAME_='hist.var-flow_assignee'
--历史沉积有效变量信息
select * from act_ge_bytearray where DEPLOYMENT_ID_ is null and NAME_='hist.var-flow_assignee' and ID_ in(select BYTEARRAY_ID_ from act_hi_varinst ahv where BYTEARRAY_ID_ is not null)
b.act_ru_actinst
c.act_ru_execution
d.act_ru_task
e.act_ru_variable
本质上运行期的信息不需要调整,但upp的结构提醒着我们一切皆有可能。
业务数据终审是基于wfengine的流程索引表、撤回重选流程的数据运行期信息已经不再有意义。所以需要清理的信息将基于流程实例索引表与流程实例轮次表进行处理。
---需要考虑运行沉积时间:【15天到6个月】
select *from act_hi_procinst where PROC_INST_ID_ in(select FLW_PROC_INSTANCE_ID from dhcc_flw_bizdata_index dfbi where FLW_STATUS='完成')
---需要考虑沉积时间
select *from act_hi_procinst where PROC_INST_ID_ in(select FLW_PROC_INSTANCE_ID from dhcc_flw_bizdata_index_hi dfbih)
根据获取到的流程实例对象进行数据转存操作。
f.act_hi_comment
g.act_hi_identitylink
h.act_hi_instance_rel
i.act_hi_procinst
j.act_hi_actinst
k.act_hi_taskinst
*l.act_hi_taskinst_approve
*m.act_hi_taskinst_approve_delete
n.act_hi_varinst
由于我们对审批记录信息进入重选构建(带*表),所以,当流程终审完或撤回重选流程后,相应的数据在表中沉积一段时间后,可以进行转存。转存的数据员类似ru表的检测。
---需要考虑运行沉积时间:【15天到6个月】
select *from act_hi_procinst where PROC_INST_ID_ in(select FLW_PROC_INSTANCE_ID from dhcc_flw_bizdata_index dfbi where FLW_STATUS='完成')
---需要考虑沉积时间
select *from act_hi_procinst where PROC_INST_ID_ in(select FLW_PROC_INSTANCE_ID from dhcc_flw_bizdata_index_hi dfbih)
根据获取的流程实例,对相应的数据进行转存操作。