flowable多实例
作者:互联网
多时例的业务场景:
收集一次组织活动的信息;
一个合同需要三个经理审批,可以是顺序的也可以是并行的;
投票,只需要其中70%的人赞成即可。等等......
内置变量说明:
nrOfInstances | 一共有多少个实例 |
nrOfCompletedInstances | 已经完成的实例个数 |
nrOfActiveInstances | 未完成的实例个数 |
流程定义xml:
<userTask xmlns:flowable="http://flowable.org/bpmn" id="Task_0ej43gf" name="知执行人确认收到指令" flowable:assignee="${assignee}" flowable:formKey="23">
<multiInstanceLoopCharacteristics isSequential="true" flowable:collection="assigneeList" flowable:elementVariable="assignee">
<completionCondition>${nrOfCompletedInstances/nrOfInstances >= 0.6 }</completionCondition>
</multiInstanceLoopCharacteristics>
</userTask>
注意红色部分!!
flowable:collection="assigneeList" ==》多实例处理人集合,需要在前端或后台在流程变量中赋值,比如
List<String> assigneeList= new ArrayList<>();
assigneeList.add("00000001");
assigneeList.add("00000002");
variables.put("assigneeList", assigneeList);
flowable:elementVariable="assignee" ==》指定一个别名,以备动态指定
flowable:assignee="${assignee}" ==》任务处理人,一定要与上面的别名一致
completionCondition为多实例节点结束条件!
isSequential true为串行,false为并行。
并行代表同时进行,如把任务分给5个人来处理,这5个人同时会收到任务,并且可以同时处理,不受各自的影响。
串行代表工作或任务由一个人完成后,再由另一个人去处理,直至全部完成,每个任务依赖于前一个任务完成。
标签:处理,flowable,assigneeList,assignee,任务,实例 来源: https://blog.51cto.com/u_14318784/2812532