flowable多实例

多时例的业务场景:

收集一次组织活动的信息;
一个合同需要三个经理审批,可以是顺序的也可以是并行的;
投票,只需要其中70%的人赞成即可。等等......

内置变量说明:

nrOfInstances 一共有多少个实例
nrOfCompletedInstances 已经完成的实例个数
nrOfActiveInstances 未完成的实例个数

流程定义xml:

flowable:assignee="${assignee}" flowable:formKey="23">
flowable:collection="assigneeList"  flowable:elementVariable="assignee">
${nrOfCompletedInstances/nrOfInstances >= 0.6 }

注意红色部分!!

flowable:collection="assigneeList"  ==》多实例处理人集合,需要在前端或后台在流程变量中赋值,比如

List 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工作流)