flowable多实例
发布日期:2021-06-29 11:46:57 浏览次数:4 分类:技术文章

本文共 1084 字,大约阅读时间需要 3 分钟。

多时例的业务场景:

收集一次组织活动的信息;

一个合同需要三个经理审批,可以是顺序的也可以是并行的;
投票,只需要其中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个人同时会收到任务,并且可以同时处理,不受各自的影响。

串行代表工作或任务由一个人完成后,再由另一个人去处理,直至全部完成,每个任务依赖于前一个任务完成。

转载地址:https://blog.csdn.net/zzchances/article/details/104959655 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java实现word、pdf、excel文件下载功能
下一篇:Spring实现日志切面

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月26日 04时46分42秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章