1、简介
做工作流,基本会遇到会签、或签的需求。而flowable是通过多任务方式来实现的
2、主要实现方式
在流程运行到任务节点时不是按照默认规则只生成一条任务记录,而是根据需要同时生成多条任务记录,甚至生成的多条任务都能分别对应到指定的各个审批人。而不再需要领取。这种就叫多任务
简述下这里面用到了核心流程
要实现多任务,则需要对 需要的任务节点需要做相关处理
下面介绍了解到两种方式处理
2.1 xml方式
此种方式是直接通过在xml的相应节点来定义多任务,这种官方有大量的xml 例子
使用flowable 官方的套件来配置多任务的交互见面大概如下(图片来源于网上):
最终对应到实际的核心xml详细如下 (下面xml不严格对应上图)
<bpmn2:userTask id="Activity_1g65lke" name="审批啊14" flowable:assignee="${approver}" flowable:candidateGroups="2317,2347" flowable:category="CHECK">
<bpmn2:extensionElements>
<flowable:executionListener class="***.listens.MultiInstanceListen" event="start" /></bpmn2:extensionElements>
<bpmn2:incoming>Flow_1666168081285</bpmn2:incoming>
<bpmn2:outgoing>Flow_03sldqb</bpmn2:outgoing><bpmn2:multiInstanceLoopCharacteristics flowable:collection="Activity_1g65lke_approverList" flowable:elementVariable="approver">
</bpmn2:extensionElements>
<bpmn2:completionCondition>${nrOfCompletedInstances>=1}</bpmn2:completionCondition>
</bpmn2:multiInstanceLoopCharacteristics></bpmn2:userTask>
如果你不是用的官方的UI来生成的xml, 那么你的自己想办法也需要构造出上面的xml
2.2 java类后端处理
此种方式是我在调研时看到的,我并未尝试过,不太切合我们的需求,但是也是一种方式
此种方式就是运行到相应节点,后端通过调用api来生成多任务所需要的一切
这边就不放核心代码了,直接可以点击网友已经做好的整理
3、核心参数解释
上面应该能看到我们需要配置一些东西才能支持多任务。这里详细说下相关参数及重要点
3.1 相关参数
- isSequential: 表示并行,还是顺序。(xml跟配图可能有出入)
-
loop card