工作流状态逆序恢复方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:38005340 阅读:13 留言:0更新日期:2023-06-30 10:21
本发明专利技术公开了一种工作流状态逆序恢复方法、装置、计算机设备及存储介质,涉及工作流程管理技术领域。所述方法是在每次工作流状态发生变更前后分别查询并存储所有变更前表和所有变更后表,然后针对各个变更后表,比对确定对应的新增、更新和/或删除数据,再然后将所述各个变更后表的新增、更新和/或删除数据打包,并与执行时间戳一起绑定作为一条流程操作记录信息进行存储,实现类似压栈的过程,最后在收到工作流状态恢复请求时,查询获取所有当前表,并结合基于执行时间戳倒叙排列所得的流程操作记录信息序列,使工作流程逐步回滚地恢复到工作流目标状态,实现类似出栈的过程,如此可大幅度提高工作流程管理系统的可维护性、可靠性和性能。靠性和性能。靠性和性能。

【技术实现步骤摘要】
工作流状态逆序恢复方法、装置、计算机设备及存储介质


[0001]本专利技术属于工作流程管理
,具体涉及一种工作流状态逆序恢复方法、装置、计算机设备及存储介质。

技术介绍

[0002]工作流程管理是指系统化地实现公司日常办公的工作流程审批和管理,包括行政、财务、人事和采购等审批流程,通过工作流程的信息化管理可提高企业的工作效率。
[0003]现有将工作流程状态(也简称工作流状态)逐步恢复到上一历史状态的方法,是在恢复时,根据工作流状态数据进行逻辑计算,判断是否可以恢复,如果可以恢复,则首先计算上一次操作的动作,然后根据操作动作的变更逻辑,推算影响的数据,最后基于这部分影响的数据进行状态还原。但是由于每次收回(即指恢复到上一历史状态的过程)都需要进行大量的运算,且依赖于现有数据和上一次操作动作的逻辑,如果操作动作的逻辑在某个版本发生了变更,则在收回逻辑中需要进行相应的判断和兼容,否则会导致收回失败,引发数据错乱,给用户造成极大的不变和困扰,因此会导致工作流程管理系统存在如下几点问题:(1)性能较差,即由于每次恢复到上一状态都需要进行大量的数据运算,且随着版本的更新越来越复杂,导致恢复所需时长越长;(2)可靠性较差,即由于操作动作的逻辑发生变更会影响收回的计算逻辑,新增的动作也需要进行兼容,所以会导致每次在其它地方发生变更时,需同步调整该处的逻辑,否则会导致数据错乱;(3)可维护性较差,即由于涉及大量运算,如果某个动作的数据和逻辑有一点点偏差,也会导致收回失败,引发数据错乱。

技术实现思路

[0004]本专利技术的目的是提供一种工作流状态逆序恢复方法、装置、计算机设备及计算机可读存储介质,用以解决现有工作流程管理系统在状态收回过程中存在可维护性、可靠性和性能都比较差的问题。
[0005]为了实现上述目的,本专利技术采用以下技术方案:
[0006]第一方面,提供了一种工作流状态逆序恢复方法,包括:
[0007]在收到工作流状态变更请求时,查询并存储涉及流程状态数据的所有变更前表;
[0008]响应所述工作流状态变更请求执行操作动作逻辑,使工作流状态发生变更;
[0009]在工作流状态发生变更后,查询并存储涉及流程状态数据的所有变更后表,其中,所述所有变更后表与所述所有变更前表一一对应;
[0010]针对在所述所有变更后表中的各个变更后表,根据与对应的变更前表的数据对比结果,确定对应的新增数据、更新数据和/或删除数据;
[0011]将所述各个变更后表的新增数据、更新数据和/或删除数据合并成一个数据包,并将所述数据包和所述操作动作逻辑的执行时间戳绑定作为一条流程操作记录信息存储在流程操作记录表中;
[0012]在收到工作流状态恢复请求时,查询获取涉及流程状态数据的所有当前表,并基
于执行时间戳倒叙排列在所述流程操作记录表中的至少一条流程操作记录信息,得到流程操作记录信息序列;
[0013]根据所述所有当前表和所述流程操作记录信息序列,使工作流程逐步回滚地恢复到在所述工作流状态恢复请求中所请求恢复的工作流目标状态。
[0014]基于上述
技术实现思路
,提供了一种类似于压栈出栈方式的工作流状态收回新方案,即在每次工作流状态发生变更前后分别查询并存储涉及流程状态数据的所有变更前表和所有变更后表,然后针对在所述所有变更后表中的各个变更后表,根据与对应的变更前表的数据对比结果,确定对应的新增数据、更新数据和/或删除数据,再然后将所述各个变更后表的新增数据、更新数据和/或删除数据打包,并与操作动作逻辑的执行时间戳一起绑定作为一条流程操作记录信息存储在流程操作记录表中,实现类似压栈的过程,最后在收到工作流状态恢复请求时,查询获取涉及流程状态数据的所有当前表,并结合基于执行时间戳倒叙排列所得的流程操作记录信息序列,使工作流程逐步回滚地恢复到在所述工作流状态恢复请求中所请求恢复的工作流目标状态,实现类似出栈的过程,如此在收回过程中可以不涉及大量运算和动作逻辑,进而可大幅度提高工作流程管理系统的可维护性、可靠性和性能,便于实际应用和推广。
[0015]在一个可能的设计中,查询并存储涉及流程状态数据的所有变更前表,包括:
[0016]依次查询获取涉及流程状态数据的所有变更前表;
[0017]基于包含有键名KEY和键值VALUE的MAP数据结构,按照如下方式得到在所述所有变更前表中的各个变更前表的表数据:先采用键名KEY为列名且键值VALUE为列值的方式,模拟在所述各个变更前表中的每一行的列数据,得到该每一行的且呈MAP数据结构的行数据,然后采用键名KEY为行数据主键标识ID且键值VALUE为行数据的方式,模拟在所述各个变更前表中的每一行,得到所述各个变更前表的表数据;
[0018]按照查询先后顺序将所述各个变更前表的表数据依次放入到一个链表LIST数据结构中,得到用于存储所述所有变更前表的第一链表LIST。
[0019]在一个可能的设计中,查询并存储涉及流程状态数据的所有变更后表,包括:
[0020]按照所述查询先后顺序依次查询获取涉及流程状态数据的所有变更后表,其中,所述所有变更后表与所述所有变更前表一一对应;
[0021]基于链表LIST数据结构和包含有键名KEY和键值VALUE的MAP数据结构,按照如下方式得到在所述所有变更后表中的各个变更后表的表数据:先采用键名KEY为列名且键值VALUE为列值的方式,模拟在所述各个变更后表中的每一行的列数据,得到该每一行的且呈MAP数据结构的行数据,然后采用链表LIST数据结构依次存储在所述各个变更后表中的每一行的行数据,得到所述各个变更后表的表数据;
[0022]按照所述查询先后顺序将所述各个变更后表的表数据依次放入到另一个链表LIST数据结构中,得到用于存储所述所有变更后表的第二链表LIST。
[0023]在一个可能的设计中,针对在所述所有变更后表中的各个变更后表,根据与对应的变更前表的数据对比结果,确定对应的新增数据、更新数据和/或删除数据,包括:
[0024]按照所述查询先后顺序同步地依次遍历在所述第二链表LIST中的表数据和在所述第一链表LIST中的表数据;
[0025]针对当前遍历到的且在所述第二链表LIST中的第二表数据和在所述第一链表
LIST中的第一表数据,按照如下方式(A)~(C)中任意一种或它们的任意组合确定对应的新增数据、更新数据和/或删除数据:
[0026](A)针对在所述第二表数据中的且呈MAP数据结构的各个第二行数据,根据对应的行数据主键标识ID在所述第一表数据中查找是否存在为该行数据主键标识ID的键名KEY,若不存在,则将对应的第二行数据作为一条与所述第二表数据和所述第一表数据对应的新增数据;
[0027](B)针对在所述第二表数据中的且呈MAP数据结构的各个第二行数据,根据对应的行数据主键标识ID在所述第一表数据中查找是否存在为该行数据主键标识ID的键名KEY,若存在,则从所述第一表数据中获取与为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种工作流状态逆序恢复方法,其特征在于,包括:在收到工作流状态变更请求时,查询并存储涉及流程状态数据的所有变更前表;响应所述工作流状态变更请求执行操作动作逻辑,使工作流状态发生变更;在工作流状态发生变更后,查询并存储涉及流程状态数据的所有变更后表,其中,所述所有变更后表与所述所有变更前表一一对应;针对在所述所有变更后表中的各个变更后表,根据与对应的变更前表的数据对比结果,确定对应的新增数据、更新数据和/或删除数据;将所述各个变更后表的新增数据、更新数据和/或删除数据合并成一个数据包,并将所述数据包和所述操作动作逻辑的执行时间戳绑定作为一条流程操作记录信息存储在流程操作记录表中;在收到工作流状态恢复请求时,查询获取涉及流程状态数据的所有当前表,并基于执行时间戳倒叙排列在所述流程操作记录表中的至少一条流程操作记录信息,得到流程操作记录信息序列;根据所述所有当前表和所述流程操作记录信息序列,使工作流程逐步回滚地恢复到在所述工作流状态恢复请求中所请求恢复的工作流目标状态。2.根据权利要求1所述的工作流状态逆序恢复方法,其特征在于,查询并存储涉及流程状态数据的所有变更前表,包括:依次查询获取涉及流程状态数据的所有变更前表;基于包含有键名KEY和键值VALUE的MAP数据结构,按照如下方式得到在所述所有变更前表中的各个变更前表的表数据:先采用键名KEY为列名且键值VALUE为列值的方式,模拟在所述各个变更前表中的每一行的列数据,得到该每一行的且呈MAP数据结构的行数据,然后采用键名KEY为行数据主键标识ID且键值VALUE为行数据的方式,模拟在所述各个变更前表中的每一行,得到所述各个变更前表的表数据;按照查询先后顺序将所述各个变更前表的表数据依次放入到一个链表LIST数据结构中,得到用于存储所述所有变更前表的第一链表LIST。3.根据权利要求2所述的工作流状态逆序恢复方法,其特征在于,查询并存储涉及流程状态数据的所有变更后表,包括:按照所述查询先后顺序依次查询获取涉及流程状态数据的所有变更后表,其中,所述所有变更后表与所述所有变更前表一一对应;基于链表LIST数据结构和包含有键名KEY和键值VALUE的MAP数据结构,按照如下方式得到在所述所有变更后表中的各个变更后表的表数据:先采用键名KEY为列名且键值VALUE为列值的方式,模拟在所述各个变更后表中的每一行的列数据,得到该每一行的且呈MAP数据结构的行数据,然后采用链表LIST数据结构依次存储在所述各个变更后表中的每一行的行数据,得到所述各个变更后表的表数据;按照所述查询先后顺序将所述各个变更后表的表数据依次放入到另一个链表LIST数据结构中,得到用于存储所述所有变更后表的第二链表LIST。4.根据权利要求3所述的工作流状态逆序恢复方法,其特征在于,针对在所述所有变更后表中的各个变更后表,根据与对应的变更前表的数据对比结果,确定对应的新增数据、更新数据和/或删除数据,包括:
按照所述查询先后顺序同步地依次遍历在所述第二链表LIST中的表数据和在所述第一链表LIST中的表数据;针对当前遍历到的且在所述第二链表LIST中的第二表数据和在所述第一链表LIST中的第一表数据,按照如下方式(A)~(C)中任意一种或它们的任意组合确定对应的新增数据、更新数据和/或删除数据:(A)针对在所述第二表数据中的且呈MAP数据结构的各个第二行数据,根据对应的行数据主键标识ID在所述第一表数据中查找是否存在为该行数据主键标识ID的键名KEY,若不存在,则将对应的第二行数据作为一条与所述第二表数据和所述第一表数据对应的新增数据;(B)针对在所述第二表数据中的且呈MAP数据结构的各个第二行数据,根据对应的行数据主键标识ID在所述第一表数据中查找是否存在为该行数据主键标识ID的键名KEY,若存在,则从所述第一表数据中获取与为该行数据主键标识ID的键名KEY对应的第一键值VALUE;针对所述各个第二行数据,按照如下方式确定对应的相异数据:针对在第一键值VALUE中的各个列,对比该列的键值VALUE与在第二行数据中的且与该列的键名KEY对应的键值VALUE,若两键值VALUE的对比结果为相异,则将该列的键名KEY和键值VALUE作为一条该第二行数据的相异数据;将所述各个第二行数据的相异数据作为一条与所述第二表数据和所述第一表数据对应的更新数据;(C)针对在所述第一表数据中的且呈MAP数据结构的各个第一行数据,根据对应的行数据主键标识ID在所述第二表数据中查找是否存在为该行数据主键标识ID的键名...

【专利技术属性】
技术研发人员:王成才熊学武韦利东
申请(专利权)人:成都泛微网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1