其他分享
首页 > 其他分享> > flowable多实例

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