activiti中怎么判断BpmnModel中的节点usertask是否已经执行过了
时间: 2024-04-06 19:29:43 浏览: 189
activiti工作流在风控业务中的应用.docx
在 Activiti 中,可以通过查询历史任务实例的方式来判断一个 usertask 节点是否已经执行过了。可以使用 `historyService` 对象的 `createHistoricTaskInstanceQuery()` 方法来查询历史任务实例,并通过设置相应的查询条件来获取指定 usertask 节点的历史任务实例列表。若该节点已经执行过,则会在历史任务实例列表中找到对应的任务实例;反之,若该节点还未执行,则历史任务实例列表中不会包含该节点的任务实例。
下面是一个示例代码:
```java
List<HistoricTaskInstance> taskInstances = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(processInstanceId)
.taskDefinitionKey(taskDefinitionKey)
.list();
if (taskInstances.isEmpty()) {
// usertask 节点还未执行
} else {
// usertask 节点已经执行
}
```
其中,`processInstanceId` 参数指定流程实例 ID,`taskDefinitionKey` 参数指定 usertask 节点的 ID。若历史任务实例列表为空,则说明该节点还未执行;否则,历史任务实例列表中的任务实例即为该节点的执行结果。
阅读全文