flowable6.5 根据流程实例id 判断当前多实例节点执行几次审批后可通过该节点
时间: 2023-09-18 12:10:21 浏览: 95
在 Flowable 中,可以通过查询多实例节点的 MultiInstanceLoopCharacteristics 对象来获取该节点的循环属性,其中包括了循环次数的信息。因此,可以通过以下步骤来判断当前多实例节点需要执行几次审批后才能通过:
1. 获取当前任务的 Task 对象:
```
Task currentTask = taskService.createTaskQuery()
.processInstanceId(processInstanceId)
.taskId(taskId)
.singleResult();
```
2. 获取当前任务所在节点的 MultiInstanceLoopCharacteristics 对象:
```
MultiInstanceLoopCharacteristics loopCharacteristics =
(MultiInstanceLoopCharacteristics) currentTask.getProcessDefinition()
.getActivity(currentTask.getTaskDefinitionKey())
.getProperty(BpmnProperties.MULTI_INSTANCE_LOOP_CHARACTERISTICS);
```
3. 获取循环次数的信息:
```
int loopCardinality = Integer.parseInt(
loopCharacteristics.getLoopCardinalityExpression().getExpressionText());
```
其中,loopCardinality 表示该多实例节点需要执行的总次数。
4. 根据循环的完成条件来计算需要执行的次数:
循环的完成条件可以通过 MultiInstanceLoopCharacteristics 对象的 getCompletionConditionExpression() 方法获取。例如,如果完成条件为 ${approvedCount >= 3},则需要执行 3 次才能通过该节点。
根据实际的完成条件来计算需要执行的次数,例如上面的完成条件需要执行 3 次才能通过该节点。
综上,根据流程实例id 判断当前多实例节点执行几次审批后可通过该节点的步骤如下:
1. 获取当前任务的 Task 对象;
2. 获取当前任务所在节点的 MultiInstanceLoopCharacteristics 对象;
3. 获取循环次数的信息;
4. 根据循环的完成条件来计算需要执行的次数。
阅读全文