一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种针对复杂工作流及指定审批人的审批方法与流程

2022-06-01 06:29:54 来源:中国专利 TAG:


1.本发明涉及多流程的数据处理技术领域,特别是涉及一种针对复杂工作流及指定审批人的审批方法。


背景技术:

2.activiti是一款开源的工作流引擎,在面对会签(多人审批)时,现行技术方案主要分为以下几种:
3.1.在绘制bpmn图时,通过对用户任务设置loop cardinality,collection,element variable三个参数,同时设置assignee为el表达式进行实现,在流程运行中,需要依据配置的collection传递流程变量,在两层变量中指定多名任务执行人,若要求为部分人通过即可,则需要设置completion condition,用el表达式设置任务终止条件。
4.2.在绘制bpmn图时,对候选用户设置el表达式,在开始实例时,通过变量指定候选人,完成任务时以移除候选人操作取代完成任务,当候选人数量少于阈值时完成任务。
5.3.在绘制bpmn图时,利用网关,绘制多个用户任务,通过对网关的进出条件进行配置,以达到会签的需求。
6.以上三种情况都存在着一些不可避免的问题:首先三个方案都需要在绘制流程图时依据具体的任务流程调整流程图,其中以方案3最为严重,方案1方案2在绘图时至少需要知道通过比例,方案3则需要知道具体(可能)参与审批的人数,导致业务与流程图发生高耦合现象,不利于对流程图的复用,其次,方案1、方案2中需要使用el表达式,当启动流程时若未能正确指定el表达式需要的值,将会导致流程无法正确运行,最后,三个方案面对需要分多组多种情况进行审批的情况都无能为力,不能满足需求。


技术实现要素:

7.为了克服上述现有技术的不足,本发明提供了一种针对复杂工作流及指定审批人的审批方法,用以解决现有技术中面对需要分多组多种情况进行审批的情况无法实现的问题。
8.本发明所采用的技术方案是:一种针对复杂工作流的审批方法,包括如下步骤:
9.s1:使用配置信息创建流程实例;
10.s2:在流程实例中创建任务;
11.s3:触发任务创建全局监听器;
12.s4:读取当前任务的配置信息;
13.s5:判断当前任务的配置信息是否拥有多条配置信息,是执行s6,否执行s7;
14.s6:创建二级父任务,分派配置,并执行s3;
15.s7:为配置中的每个审批人创建子任务;
16.s8:所述s7中子任务完成,触发任务完成全局监听器;
17.s9:判断是否拥有父任务,是,执行s10,否,执行s2;
18.s10:读取父任务储存的配置信息,并获取和父任务关联的子任务的数量;
19.s11:判断当前任务完成后是否符合父任务的完成条件,是进入s12,否结束监听流程
20.优选的,所述s11中判断当前任务完成后是否符合父任务的完成条件的方法包括:判断会签子任务是否全部完成和/或部分审批审批人数是否达到阈值。
21.优选的,所述s12中,完成父任务后,存储流程实例配置信息及最终状态,用于流程审批过程的查看及审核。
22.本分发明还提供了一种针对指定审批人工作流系统的审批方法,包括如下步骤:
23.s1:获取配置信息;
24.s2:判断是否拥有子任务,是,执行s3,否,执行s4;
25.s3:删除现有子任务;
26.s4:依据配置,建立新的子任务,完成流程。
27.与现有技术相比,本发明的方案主要有:
28.1、业务与流程图低耦合,利于流程图的复用。该方案中,流程图面对复杂的会签任务时,仅需要一个用户任务就能表示,在保证标识不冲突的情况下,几乎不需要进行任何额外的配置,同时模糊了流程图中各个阶段的具体含义,使得流程图可以适配多个业务流程,哪怕具体的业务流程有一定差异(主要在审批条件、人员上),也可以使用同一张流程图。
29.2、支持多组多情况审批。该方案中使用了多级子任务,使得同一个任务阶段中可以存在多个条件不同,各自独立的子任务组,使得原本不被支持的多组多情况审批得以实现。
30.3、本方案中不使用el表达式,降低了流程图绘制的入门门槛,有利于用户的学习与使用,同时合并了复杂情况下用户任务的数目,降低了绘制流程图的工作量。
31.4、本方案支持在流程执行中动态指定以后的步骤中的审批人和审批方案,允许分步分批指定任务的执行人,执行方法,且允许存在一个任务分多次,指定多组不同审批需求的审批人进行审批。
附图说明
32.图1为本发明一种针对复杂工作流的审批方法的流程示意图;
33.图2为本发明一种针对指定审批人工作流的审批方法的流程示意图;
34.图3为:bpmn的流程定义的流程图;
35.图4为:本发明一种针对复杂工作流的审批方法的流程示意简图。
具体实施方式
36.下面结合附图对本发明进一步说明。
37.activiti是一款开源的工作流引擎,使用bpmn作为流程的定义,其定义的流程图的形式如附图3所示
38.本发明中用到的名词定义:
39.1、流程图:由bpmn定义的一个流程,上传后以xml的形式存储与引擎内,其作用是定义了某一(类)流程的形式,非具体的流程。
40.2、用户任务:以附图3“审批“的图形表示,表示某一个审批阶段,与下述的”任务“非同一指代。
41.3、流程实例:简称实例,依据流程图,生成的一个与具体业务有关联,可以执行的工作流,流程中包含一个或多个正在执行的任务。
42.4、任务:工作流实例中,可以被完成的具体的任务,任务若被其他任务依赖,则称为父任务,若依赖其他任务,则称为子任务,若父任务还依赖于其他任务,则称其为n级父任务,当任务依赖的任务被销毁或完成时,该任务将同步被销毁,实例运行时,仅当前任务将被创建。
43.5、审批人:某任务的委派对象,任务的审批人是唯一的。
44.6、流程变量:存在于实例中的数据,不会随着任务的结束而被销毁。
45.实施例1:
46.参照图1-2所示,本发明提供的一种针对复杂工作流的审批方法,包括如下步骤:
47.s1:使用配置信息创建流程实例;
48.s2:在流程实例中创建任务;
49.s3:触发任务创建全局监听器;
50.s4:读取当前任务的配置信息;
51.s5:判断当前任务的配置信息是否拥有多条配置信息,是执行s6,否执行s7;
52.s6:创建二级父任务,分派配置,并执行s3;
53.s7:为配置中的每个审批人创建子任务;
54.s8:所述s7中子任务完成,触发任务完成全局监听器;
55.s9:判断是否拥有父任务,是,执行s10,否,执行s2;
56.s10:读取父任务储存的配置信息,并获取和父任务关联的子任务的数量;
57.s11:判断当前任务完成后是否符合父任务的完成条件,是进入s12,否结束监听流程。
58.优选的,所述s11中判断当前任务完成后是否符合父任务的完成条件的方法包括:判断会签子任务是否全部完成和/或部分审批审批人数是否达到阈值。
59.优选的,所述s12中,完成父任务后,存储流程实例配置信息及最终状态,用于流程审批过程的查看及审核。
60.本分发明还提供了一种针对指定审批人工作流的审批方法,包括如下步骤:
61.s1:获取配置信息;
62.s2:判断是否拥有子任务,是,执行s3,否,执行s4;
63.s3:删除现有子任务;
64.s4:依据配置,建立新的子任务,完成流程。
65.实施例2:
66.本方案的一种针对复杂工作流的审批方法的执行流程为:
67.s1:使用配置信息创建流程实例,进入s2;
68.s2:创建流程中当前的任务,进入s3;
69.s3:任务创建全局监听器生效,进入s4;
70.s4:读取当前任务的配置信息,,进入s5;
71.s5:判断是否拥有多条配置信息,是执行s6,否执行s7;
72.s6:创建二级父任务,分派配置,触发s3;
73.s7:为配置中的每个审批人创建子任务,并设置任务类型,创建阶段完成;
74.s8:任务完成,触发任务完成全局监听器,进入s9;
75.s9:判断是否拥有父任务,若是,进入s10,否放行结束流程触发后续任务创建流程;
76.s10:将本人任务中收到的变量传入父任务的流程变量中(保证每个子任务提交的变量最终能被汇总到流程中),进入s11;
77.s11,判断当前任务完成后是否符合父任务的完成条件(会签子任务是否全部完成,部分审批审批人数是否达到阈值)是进入s12,否结束监听流程;
78.s12,完成父任务,进入s8。
79.实施例3:
80.本发明中,实施例2是在上述任务创建、完成方案的基础上通过完成任务时传入配置信息的方式进行实现的。本实施例指定当前任务的审批人的实现流程如图2所示:
81.s1:获取配置信息,进入s2;
82.s2:是否拥有子任务,是进入s3,否进入s4;
83.s3:删除现有子任务,进入s4;
84.s4:依据配置,建立新的子任务,流程完成。
85.实施例4:
86.流程图如附图4所示:
87.本命实施例中存在一个复合审批以及一个单人审批和会审,其中复合审批包含一个会审以及一个多人审批的组合,即需要两者均满足要求后方可进行后续的步骤,产生新的任务节点。
88.实例在初始化时,会根据流程的基础配置信息创建实例,对于当前例子中仅存在第一个节点信息,未注明审批人的任务暂时无审批人,为进行到的任务节点不会创建任务。
89.流程基础配置信息:
[0090][0091]
实例初始化,创建任务列表:
[0092]
任务代号父任务代号审批人完成条件复合审批\\完成全部子任务复合审批-1复合审批\完成全部子任务复合审批-1-1复合审批-1a1\复合审批-1-2复合审批-1a2\复合审批-2复合审批\完成两个子任务复合审批-2-1复合审批-2b1\
复合审批-2-2复合审批-2b2\复合审批-2-3复合审批-2b3\
[0093]
当前状态节点配置信息:
[0094][0095]
a1完成审批,并指定“单人审批“任务审批人为c,任务列表更新为:
[0096]
任务代号父任务代号审批人完成条件复合审批\\完成全部子任务复合审批-1复合审批\完成全部子任务复合审批-1-2复合审批-1a2\复合审批-2复合审批\完成两个子任务复合审批-2-1复合审批-2b1\复合审批-2-2复合审批-2b2\复合审批-2-3复合审批-2b3\
[0097]
当前状态节点配置信息,下一节点更新配置信息,当前节点未完成时不会进行任务创建,当该节点任务通过后会根据当前配置信息进行任务创建:
[0098][0099]
a2完成审批,任务列表更新:
[0100]
任务代号父任务代号审批人完成条件复合审批\\完成全部子任务复合审批-2复合审批\完成两个子任务复合审批-2-1复合审批-2b1\复合审批-2-2复合审批-2b2\复合审批-2-3复合审批-2b3\
[0101]
当前状态节点配置信息:
[0102][0103]
[0104]
b1完成审批,并指定“会审审批“任务审批人为d1,d2,任务列表更新:
[0105]
任务代号父任务代号审批人完成条件复合审批\\完成全部子任务复合审批-2复合审批\完成两个子任务复合审批-2-2复合审批-2b2\复合审批-2-3复合审批-2b3\
[0106]
当前状态节点配置信息:
[0107][0108]
b2完成审批,任务列表:
[0109]
任务代号父任务代号审批人完成条件单人审批\\完成全部子任务单人审批-1单人审批c\
[0110]
当前状态节点配置信息:
[0111][0112]
更改当前任务审批人为e1,e2,类型为通过一个,任务列表:
[0113]
任务代号父任务代号审批人完成条件单人审批\\通过一个单人审批-1单人审批e1\单人审批-2单人审批e2\
[0114]
当前状态节点配置信息:
[0115][0116]
任务完成,流程结束。
[0117]
关闭实例任务信息,存储实例配置信息及最终状态,用于流程审批过程的查看及审核。
[0118]
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明,因此无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献