一种工作流回退方法、装置、设备及介质制造方法及图纸

技术编号:36220663 阅读:21 留言:0更新日期:2023-01-04 12:18
本申请提供一种工作流回退方法、装置、设备及介质,涉及工作流程自动化领域。方法包括:加载目标工作流的流程数据,生成有向图,有向图的每个顶点表示目标工作流的一个节点或者网关;确定目标工作流的当前处理节点以及回退节点,从当前处理节点开始逆序遍历有向图,直至确定由当前处理节点至回退节点的回退路径,将回退路径中的节点对应的流程进行回退;在逆序遍历过程中,当遍历至收敛网关时,依次遍历收敛网关的多个并行分支,若一个并行分支中不包含回退节点,则将并行分支中的各个节点的标识信息缓存至对应的发散网关,在各并行分支遍历结束时,确定发散网关缓存的各个节点是否在回退路径中。本申请可以简单快速地实现工作流回退操作。回退操作。回退操作。

【技术实现步骤摘要】
一种工作流回退方法、装置、设备及介质


[0001]本申请涉及工作流程自动化领域,尤其涉及一种工作流回退方法、装置、设备及介质。

技术介绍

[0002]工作流,就是通过计算机对业务流程自动化执行管理,使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现。
[0003]Activiti是一个工作流引擎,它可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,使得业务流程按照预先定义的流程执行,实现了系统的流程由Activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。
[0004]Activiti工作流回退操作是指,流程参与者主动回退当前任务到已经执行过的某个节点。例如,当流程参与者接收任务后,发现不应由自己办理此任务或之前的某个执行者办理有错误等情况,需要将该任务回退给之的前某个节点的执行者重新办理。
[0005]由于Activiti工作流本身不支持回退操作,需要通过扩展Activiti的API(应用程序编程接口,Application Programming Interface)实现,且包含发散网关、收敛网关等的工作流回退操作是非常复杂的。因此,如何降低工作流回退操作的复杂度具有必要性与现实意义。

技术实现思路

[0006]本申请提供了一种工作流回退方法、装置、设备及介质,用以降低工作流回退操作的复杂度,实现简单,执行效率高。
[0007]本申请实施例提供的具体技术方案如下:
[0008]第一方面,本申请实施例提供一种工作流回退方法,包括:
[0009]加载目标工作流的流程数据,生成有向图,所述有向图的每个顶点表示所述目标工作流的一个节点或者网关,所述网关包括收敛网关或者发散网关;
[0010]确定所述目标工作流的当前处理节点以及回退节点,从所述当前处理节点开始,逆序遍历所述有向图,直至确定由所述当前处理节点至所述回退节点的回退路径,并将所述回退路径中的节点对应的流程进行回退;
[0011]其中,在逆序遍历过程中,当遍历至所述收敛网关时,依次遍历所述收敛网关的多个并行分支,若一个并行分支中不包含所述回退节点,则将所述并行分支中的各个节点的标识信息缓存至对应的发散网关,在所述多个并行分支遍历结束时,确定所述发散网关缓存的各个节点是否在所述回退路径中。
[0012]本申请实施例中,通过加载目标工作流的流程数据,生成有向图,从当前处理节点开始,逆序遍历有向图;在逆序遍历过程中,遇到收敛网关时执行节点上报功能,最终将并
行分支中的非回退节点的标识信息缓存至发散网关,以通过发散网关执行决策功能,确定并行分支中的非回退节点是否位于回退路径中,整个流程回退操作只需要对有向图进行一次逆序遍历,实现简单,执行效率高。
[0013]在一些可选的实施方式中,所述当一个并行分支中不包含回退节点时,将所述并行分支中的各个节点的标识信息缓存至所述收敛网关对应的发散网关,包括:
[0014]在遍历一个并行分支的过程中,执行以下操作:
[0015]若确定所述并行分支中遍历的第一个节点为非回退节点,则将所述第一个节点的标识信息上报至待遍历的第二个节点;
[0016]若确定所述第二个节点为所述发散网关,则将所述第一个节点的标识信息缓存至所述发散网关;
[0017]若确定所述第二个节点为非回退节点,则将所述第二个节点的标识信息以及所述第一个节点的标识信息上报至待遍历的第三个节点,直至将上报的各个节点的标识信息缓存至所述发散网关。
[0018]本申请实施例中,在逆序遍历过程中,遇到收敛网关时执行节点上报功能,具体为:当遍历至并行分支中的一个节点时,不确定该节点是否在回退路径中,将该节点的标识信息上报至其父节点,也不确定其父节点是否在回退路径中,将其父节点的标识信息以及该节点的标识信息上报至其父节点的父节点,直至遍历至发散网关,将上报的各个节点的标识信息缓存至发散网关,以通过发散网关确定上报的各个节点是否在回退路径中,从而简单快速地实现工作流回退操作。
[0019]在一些可选的实施方式中,所述方法还包括:
[0020]在依次遍历所述收敛网关的多个并行分支的过程中,当遍历至另一并行分支中的所述回退节点时,确定所述另一并行分支中的所述回退节点的子节点在所述回退路径中,并停止逆序遍历;
[0021]所述确定所述发散网关缓存的各个节点是否在所述回退路径中,包括:
[0022]确定所述发散网关缓存的各个节点不在所述回退路径中。
[0023]本申请实施例中,当回退节点位于并行分支中时,可以确定该并行分支中回退节点的子节点位于回退路径中,同时可以确定其它并行分支中的节点不在回退路径中,从而简单快速地实现工作流回退操作。
[0024]在一些可选的实施方式中,所述方法还包括:
[0025]在依次遍历所述收敛网关的多个并行分支的过程中,通过所述发散网关统计已遍历的并行分支的数量;
[0026]若基于统计数量确定遍历完所述收敛网关的多个并行分支,则确定所述多个并行分支中的节点在所述回退路径中,并继续遍历所述发散网关所在的主分支中的节点。
[0027]本申请实施例中,在遇到收敛网关后,如果遍历完收敛网关的多个并行分支,则可以确定多个并行分支中不包含回退节点,需要将多个并行分支中的所有节点进行回退,从而简单快速地实现工作流回退操作。
[0028]在一些可选的实施方式中,所述方法还包括:
[0029]若所述当前处理节点位于所述收敛网关的并行分支中,则在逆序遍历过程中,从所述当前处理节点开始遍历所在的并行分支;
[0030]若所述当前处理节点所在的并行分支中不包含所述回退节点,则确定所述并行分支中的各个节点在所述回退路径中,并继续遍历主分支中的节点。
[0031]本申请实施例中,如果当前处理节点位于并行分支中,则可以确定该并行分支中的节点位于回退路径中,而该并行分支之外的其它并行分支中的节点不在回退路径中,需要继续遍历前面的主分支中的节点,从而简单快速地实现工作流回退操作。
[0032]在一些可选的实施方式中,所述有向图中的每个顶点的数据结构包括以下部分或全部属性:
[0033]标识属性,用于存储顶点对应的节点的标识信息、所述节点的子节点上报的标识信息;
[0034]发散网关中的计数属性,用于统计已遍历并行分支的数量;
[0035]父节点属性,用于存储顶点对应的节点的父节点信息;
[0036]子节点属性,用于存储顶点对应的节点的子节点信息。
[0037]本申请实施例中,设计了数据结构存储节点信息,以构建有向图,通过对节点与网关新增属性,以便遇到收敛网关时执行节点上报功能以及通过发散网执行决策功能,进而实现工作流回退操作。
[0038]在一些可选的实施方式中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种工作流回退方法,其特征在于,包括:加载目标工作流的流程数据,生成有向图,所述有向图的每个顶点表示所述目标工作流的一个节点或者网关,所述网关包括收敛网关或发散网关;确定所述目标工作流的当前处理节点以及回退节点,从所述当前处理节点开始,逆序遍历所述有向图,直至确定由所述当前处理节点至所述回退节点的回退路径,并将所述回退路径中的节点对应的流程进行回退;其中,在逆序遍历过程中,当遍历至收敛网关时,依次遍历所述收敛网关的多个并行分支,若一个并行分支中不包含所述回退节点,则将所述并行分支中的各个节点的标识信息缓存至对应的发散网关,在所述多个并行分支遍历结束时,确定所述发散网关缓存的各个节点是否在所述回退路径中。2.根据权利要求1所述的方法,其特征在于,所述当一个并行分支中不包含回退节点时,将所述并行分支中的各个节点的标识信息缓存至所述收敛网关对应的发散网关,包括:在遍历一个并行分支的过程中,执行以下操作:若确定所述并行分支中遍历的第一个节点为非回退节点,则将所述第一个节点的标识信息上报至待遍历的第二个节点;若确定所述第二个节点为所述发散网关,则将所述第一个节点的标识信息缓存至所述发散网关;若确定所述第二个节点为非回退节点,则将所述第二个节点的标识信息以及所述第一个节点的标识信息上报至待遍历的第三个节点,直至将上报的各个节点的标识信息缓存至所述发散网关。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在依次遍历所述收敛网关的多个并行分支的过程中,当遍历至另一并行分支中的所述回退节点时,确定所述另一并行分支中的所述回退节点的子节点在所述回退路径中,并停止逆序遍历;所述确定所述发散网关缓存的各个节点是否在所述回退路径中,包括:确定所述发散网关缓存的各个节点不在所述回退路径中。4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在依次遍历所述收敛网关的多个并行分支的过程中,通过所述发散网关统计已遍历的并行分支的数量;若基于统计数量确定遍历完所述收敛网关的多个并行分支,则确定所述多个并行分支中的节点在所述回退路径中,并继续遍历所述发散网关所在的主分支中的节点。5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:若所述当前处理节点位于所述收敛网关的并行分支中,则在逆序遍历过程中,从所述当前处理...

【专利技术属性】
技术研发人员:李知铖马晓龙李建伟
申请(专利权)人:青岛海信网络科技股份有限公司
类型:发明
国别省市:

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

1