flowable怎么实现有springboot中flowable有四个任务节点,第一个任务节点需要四个人审批,怎么让其中一个人审批后直接进入下一个审批节点,其他节点的审批逻辑也是只人一个用户审批,审批完成之后进入下一个审批节点一个用户审批不让其余用户审批直接进入下一个任务节点
时间: 2024-12-02 10:18:23 浏览: 64
在Spring Boot中结合Flowable,要实现这种多级审批且单人负责每个阶段的流程,你可以这样做:
1. **定义流程定义**:
在`application.yml`或`application.properties`中配置一个流程定义,使用网关(Gateway)来分隔各个审批阶段,每个阶段由`Exclusive_gateway`(独占网关)代表。首先,创建一个初始任务作为第一个节点,然后连接四个审批节点,每个节点分配给一个特定的用户。
```yaml
activiti:
bpmn20.xml:
resource: path/to/your/bpmn20.xml
```
BPMN XML文件里,例如:
```xml
<exclusiveGateway id="startGateway">
<outgoing>approval1</outgoing>
<outgoing>approval2</outgoing>
<!-- 添加更多outgoing直到approval4 -->
</exclusiveGateway>
<userTask id="approval1" name="审批1" swimlane="审批员A" assignee="${approverA}"></userTask>
<!-- 类似地添加其他三个审批任务,分配给相应的用户 -->
<sequenceFlow id="approval1ToNext" sourceRef="approval1" targetRef="exclusiveGateway" />
<!-- 从审批1开始的后续流 -->
```
2. **审批策略**:
- 对于每个任务节点,设置`multiInstanceLoopCharacteristics`属性,使其支持多人并发审批。同时,指定`collectionElementName`和`collectionRef`,指定数据源来获取审批人员列表。
```xml
<userTask id="approval2" multiInstanceLoopCharacteristics="...">
<collectionElement name="personToApprove" collectionRef="approversList" />
</userTask>
```
在数据源中,确保只有一个人的列表。
3. **审批完成后流转**:
- 使用`boundaryEvent`监听每个审批节点的完成事件,触发下一个节点的分配。例如,审批1完成后,通过Java服务处理边界事件,将`nextStepId`设置为下一个审批节点的ID。
```xml
<boundaryEvent id="approve1End" attachedToRef="approval1">
<serviceTask id="setNextStep" class="com.example.SetNextStepService" />
</boundaryEvent>
```
在`SetNextStepService`中,根据审批结果决定下一步骤。
阅读全文
相关推荐

















