EMSFLOW流程管理平台特点3-工作流的任务分配与完成策略


任务的分配与完成应该是工作流里面最常用到的功能,灵活性要求也最高,下面我们结合执行者设置来说明分配与完成策略。

图:Studio中任务的分配与完成策略设置

图:执行人员选择

分配策略:指的是当一个任务分配给一个或多个部门/角色/人员的时候,任务应该如何分配

完成策略:指的是任务分配给多个人以后,几个人完成任务才算这个任务完成,例如任务分配给5个人以后,3个人完成任务便算任务完成,便是一种完成策略。

动态分配策略

现在工作流的需求也要求越来越灵活,EMSFLOW也提供了2种运行时期动态的任务分配策略,来满足不同的需求。

  1. 运行时期动态分配下一部执行人员:指的是系统运行时期由本活动执行人员来指定下一步的执行者,如果指定了多个人员,完成策略同样对动态指定有效。
  2. 流程启动时动态分配所有人工活动的执行人员:指的是流程在启动活动的时候,可以为每个人工活动动态设置执行人员,如果没有动态设置,便使用设计时期指定的执行者,完成策略同样对动态指定有效。

分配策略(AssignmentStrategy

任务的分配策略通常相对简单,因为主要的任务执行是由完成策略来控制,EMSFLOW工作流提供了2种任务分配策略。如图。

分配所有人员:如果活动有多个执行者,或者包含角色,部门的时候,则会给所有的执行者分配一条任务(部门为本部门所有员工,角色为本部门该角色所包含的员工)

不管设置的是角色、部门,还是人员,任务分配的时候,都是以人为单位的。例如:

值班主任角色包括2个人员,则任务分配的时候是分配给这2个人。 如例:任务分配后,

角色所包含的2个人员都被分配了任务

分配任意一个:如果活动有多个执行者,或者包含角色,部门的时候则会分配所有执行者中的随机选择一个来分配任务。

完成策略(CompletionStrategy

完成策略决定着一个活动需要多少人员来执行,当一个活动的执行人员达到完成策略设置的数量,该活动便完成,而被分配任务的未执行的工作项都被设置为关闭中断状态,不需要再执行

任意完成一个:本活动所有被分配任务的人员,任意一个完成工作项,则完成本活动,启动下一活动,所有其他未执行的工作项状态被设置为4(关闭中断)

必须所有完成:必须所有分配任务的人员都完成,本活动才能完成,如例子:

 

按完成数量:根据指定的数量来控制活动的完成,人员的任务完成数量达到指定的数量,活动便完成,不受任务分配数量的影响,适用于大数量的人员分配,比如,执行者是一个部门,而部门的人员一直在变动,只需要指定具体的数量,便可以不受人员变动的影响。

按完成的百分比:根据任务分配数量*百分比来算出完成的数量,来控制活动的完成,比如,一个活动,分配给了10个人执行,完成策略是按完成的30%,则任务完成数量=10*30%=3个,3个人完成任务便完成本活动。

运行时期动态分配下一部执行人员

在设计时,指定哪一部需要动态指定,在转移线中设置,如图

运行时期,执行一级审核活动的时候,便会出现如图中红色部分的人员设置框,设置动态指定活动的人员

流程启动时动态分配所有人工活动的执行人员:界面

这是提供的一个比较灵活的功能,可以在流程启动的时候为所有人工活动动态指定执行人员,如例:

图: 启动时动态设置人工活动执行人员

图:设置后的人工活动颜色会变

流程启动后,动态分配的3个人都分配了任务

使用api运行期动态为流程设置用户

流程创建后,使用assignProcessInstanceAttribute往流程数据里写下活动的名称,值写下用户id,多个用户用,分割,这样运行时期本活动执行用户就是是取流程定义里定义的用户

,而是这里设置的,例子如下:ManAct_1 为活动ID

server.assignProcessInstanceAttribute(processInstanceId,"ManAct_1","001001,001002");