[发明专利]一种基于广度遍历+僵枝切除的工作流实现方法有效
申请号: | 202010460879.3 | 申请日: | 2020-05-27 |
公开(公告)号: | CN111667239B | 公开(公告)日: | 2023-04-18 |
发明(设计)人: | 刘新锋;尹义龙;宋冰飞;杨磊;张朝阳;胡雪梅;张雪华;卢俏丽 | 申请(专利权)人: | 山东建筑大学 |
主分类号: | G06F8/34 | 分类号: | G06F8/34;G06F8/71;G06F9/448 |
代理公司: | 济南泉城专利商标事务所 37218 | 代理人: | 李桂存 |
地址: | 250101 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 广度 遍历 切除 工作流 实现 方法 | ||
1.一种基于广度遍历+僵枝切除的工作流实现方法,其特征在于,包括可视化配置、流程提交、工作流引擎自动推送三个步骤,具体包括以下步骤:
1)打开流程配置器,通过设置节点和连接线的连接方式和方向进行流程可视化配置,包括流程配置与表单配置、可写字段配置、经办人配置;
2)业务表单进行业务数据处理后,调用工作流进行工作流流转,再由工作流引擎推送;
3)工作流引擎自动推送,首先获取当前工作和该工作对应的流程,生成AOV网络;
4)遍历AOV网获取入度为0的节点,压入栈;
5)判断栈内是否有元素,如果有元素继续进行步骤6);如果没有元素则获取所有节点,激活需要激活的节点并结束;
6)栈内的元素出栈,判断节点类型,根据元素节点的类型进行相应的步骤,
a、节点类型=僵死,更新该节点的所有孩子节点的父分支僵死数量+1---sonNode.parentDeadBranchCount++,继续进行步骤7);
b、节点类型=激活,更新该节点的所有孩子节点为休眠,sonNode.state=休眠,继续进行步骤7)
c、节点类型=完成,如果孩子节点有僵死分支,更新该子节点父分支僵死数量+1;如果孩子节点没有僵死分支,更新该子节点父分支激活数量加1,继续进行步骤7);
d、节点类型=休眠,如果父分支休眠数量0 ,更新所有孩子节点为睡眠状态,继续进行步骤7);否则继续判断父分支僵死数量是否等于父节点数量,如果相等,更新当前节点为僵死,并更新所有子节点父僵死数量加1,继续进行步骤7);否则继续判断父分支激活数量是否大于0,如果是则更新节点状态为需要激活,继续进行步骤7);
7)获取孩子节点入度==1的节点压入栈TEMP_STACK,跳转至步骤8);
8)判断栈是否有元素,如果有则继续步骤6),若没有则获取TEMP_STACK栈中的元素,并压入栈继续步骤5)。
2.根据权利要求1所述的基于广度遍历+僵枝切除的工作流实现方法,其特征在于,所述流程配置与表单配置中本流程只包含一个业务表单,只需在流程上配置业务表单。
3.根据权利要求1所述的基于广度遍历+僵枝切除的工作流实现方法,其特征在于,所述流程配置与表单配置中本流程包含多个业务表单,在对应节点上配置业务表单。
4.根据权利要求1所述的基于广度遍历+僵枝切除的工作流实现方法,其特征在于,所述的工作流流转方式有串行流转和分支流转。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东建筑大学,未经山东建筑大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010460879.3/1.html,转载请声明来源钻瓜专利网。