flowable 根据流程实例id 查询当前多实例节点的完成数
时间: 2023-10-06 21:09:13 浏览: 135
可以使用Flowable的API来查询当前多实例节点的完成数,具体步骤如下:
1. 首先根据流程实例id获取当前的流程实例对象:
```
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
```
2. 然后根据流程实例对象获取当前正在执行的任务:
```
List<Task> tasks = taskService.createTaskQuery()
.processInstanceId(processInstance.getId())
.list();
```
3. 遍历任务列表,获取每个任务节点的多实例信息:
```
for (Task task : tasks) {
MultiInstanceLoopCharacteristics multiInstance =
(MultiInstanceLoopCharacteristics)
((ExecutionEntity) runtimeService.createExecutionQuery()
.executionId(task.getExecutionId())
.singleResult()).getActivity().getProperty("multiInstanceLoopCharacteristics");
if (multiInstance != null) {
int completedInstances = multiInstance.getCompletedCount();
int nrOfInstances = multiInstance.getLoopCardinality();
// completedInstances 即为当前多实例节点的完成数
// nrOfInstances 即为多实例节点的总数
}
}
```
通过以上步骤,即可查询到当前多实例节点的完成数。注意,如果当前节点不是多实例节点,则会返回null。
阅读全文