一种基于有向图循环检测的流程自动化工作流验证方法与流程

摘要: 本发明属于计算机流程自动化,具体涉及一种基于有向图循环检测的流程自动化工作流验证方法、系统、终端设备及计算机可读存储介质。背景技术:1、流程自动化工作流通常由用...
一种基于有向图循环检测的流程自动化工作流验证方法与流程

本发明属于计算机流程自动化,具体涉及一种基于有向图循环检测的流程自动化工作流验证方法、系统、终端设备及计算机可读存储介质。

背景技术:

1、流程自动化工作流通常由用户通过可视化画布拖拽节点并连接有向边来构建。在构建过程中,用户可能无意中引入多种结构性问题,例如遗漏起始节点或结束节点、创建不被任何边连接因而永远不会被执行的孤岛节点、在条件判断节点之后忘记配置分支出口、或者连接出包含循环回路的死循环结构。

2、现有技术中对工作流的结构验证方法通常仅检查是否存在起始和结束节点,无法覆盖孤岛节点、连线引用有效性和循环引用等问题。部分方案虽然实现了循环检测,但采用的是基于拓扑排序的方法,该方法在检测到存在环时只能报告"存在循环"而无法指明具体哪些节点构成了循环路径,不利于用户定位和修复问题。

3、此外,现有验证方法通常将各检查维度耦合在一起执行,不同维度的错误信息混杂输出,用户难以区分哪些是致命错误(如缺少起始节点会导致工作流完全无法执行)、哪些是警告建议(如条件节点仅有一个出口虽然可以执行但逻辑不完整)。

技术实现思路

1、本发明要解决的技术问题是:在流程自动化领域中,如何对用户构建的工作流进行多维度自动化验证,全面检测空工作流、节点缺失、孤岛节点、连线引用错误、循环引用和条件节点出口不足等结构性问题,并提供可区分的错误与警告分级报告。

2、为解决上述技术问题,本发明提供了一种基于有向图循环检测的流程自动化工作流验证方法。该方法的核心思路是将工作流抽象为有向图模型,建立一个包含七个检查维度的流水线验证机制,按依赖关系顺序执行每个维度的检查,并采用遍历着色循环检测算法来确定位和报告循环引用路径。

3、具体来说,首先从待验证工作流中提取全部节点和全部有向边,构建节点标识集合和有向边集合形成有向图模型。然后对有向图模型依次执行七维度验证流水线。第一维度检查节点总数是否为零;第二维度检查是否存在起始类型节点;第三维度检查是否存在结束类型节点;第四维度通过遍历有向边集合构建已连接节点集合来检测孤岛节点;第五维度检查每条有向边的源节点和目标节点是否均存在于节点标识集合中;第六维度采用遍历着色算法进行循环引用检测——该算法维护未访问、访问中和已访问三个节点状态集合,从每个节点出发执行深度优先遍历,当遍历过程中遇到一个节点的后继节点已处于访问中状态时即判定为检测到循环引用;第七维度检查每个条件类型节点的出边数量是否满足多出口要求。最后汇总七个维度的全部输出,生成包含有效标志、错误信息列表和警告信息列表的验证报告。

4、本发明通过七维度流水线验证机制实现了对工作流结构问题的全面覆盖。遍历着色循环检测算法不仅能判定循环是否存在,还能通过访问中集合精确记录当前正在遍历的路径,从而定位循环的具体位置。错误信息列表与警告信息列表的清晰分离使用户能够优先关注影响工作流可执行性的致命错误。

1.一种基于有向图循环检测的流程自动化工作流验证方法,其特征在于,包括至少以下步骤:

2.根据权利要求1所述的方法,其特征在于,所述第六维度中的循环引用检测步骤具体包括:初始化一个空的访问中集合和一个空的已访问集合;对所述全部节点中的每个节点执行以下递归过程:当当前节点已存在于所述访问中集合中时,返回检测到循环引用;当当前节点已存在于所述已访问集合中时,直接返回未检测到;将当前节点加入所述访问中集合;获取以当前节点为源节点的全部有向边的目标节点列表;对每个目标节点递归执行所述递归过程;将当前节点从所述访问中集合移除并加入所述已访问集合。

3.根据权利要求1所述的方法,其特征在于,所述第四维度检测孤岛节点的步骤中,排除起始类型和结束类型节点的依据是:起始类型节点和结束类型节点作为工作流的结构性节点,允许其不存在入边或出边,不应被判定为孤岛节点。

4.根据权利要求1所述的方法,其特征在于,所述第七维度检测条件节点多出口的步骤中,统计以条件类型节点为源节点的有向边数量,当该数量等于1时输出内容为"条件节点仅有一个出口,建议至少配置真分支和假分支两个出口"的警告信息。

5.根据权利要求1所述的方法,其特征在于,所述验证报告的有效标志在所述错误信息列表为空时取值为有效,在所述错误信息列表非空时取值为无效;所述验证报告中警告信息不影响有效标志的取值。

6.一种基于有向图循环检测的流程自动化工作流验证系统,其特征在于,包括:

7.根据权利要求3所述的系统,其特征在于,所述循环引用检测单元执行的递归过程包括:当当前节点已存在于所述访问中集合中时返回检测到循环引用;当当前节点已存在于所述已访问集合中时直接返回未检测到;将当前节点加入所述访问中集合;获取以当前节点为源节点的全部有向边的目标节点列表;对每个目标节点递归执行所述递归过程;将当前节点从所述访问中集合移除并加入所述已访问集合。

8.根据权利要求3所述的系统,其特征在于,所述孤岛节点检测单元在检测孤岛节点时排除起始类型和结束类型节点,所述条件节点多出口检查单元在检测条件类型节点时统计该节点的出边数量,当出边数量小于2时输出警告信息。

9.一种终端设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至3中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述方法的步骤。