activiti6.7 获取历史任务的变量
时间: 2024-04-03 18:35:00 浏览: 160
在Activiti 6.7中,获取历史任务的变量与Activiti 5.x的步骤有一些不同。具体步骤如下:
1. 获取HistoricTaskInstanceQuery对象
```java
HistoricTaskInstanceQuery historicTaskInstanceQuery = historyService.createHistoricTaskInstanceQuery();
```
2. 添加查询条件
```java
historicTaskInstanceQuery.taskAssignee("assignee"); // 指定任务的办理人
historicTaskInstanceQuery.processInstanceId("processInstanceId"); // 指定流程实例ID
```
3. 调用查询方法获取HistoricTaskInstance对象列表,并添加排序规则
```java
List<HistoricTaskInstance> historicTaskInstances = historicTaskInstanceQuery.orderByHistoricTaskInstanceEndTime().asc().list();
```
4. 遍历HistoricTaskInstance对象列表,获取任务变量值
```java
for (HistoricTaskInstance historicTaskInstance : historicTaskInstances) {
Map<String, Object> variables = historyService.getTaskService().getVariables(historicTaskInstance.getId());
// 根据变量名称获取变量值
Object variableValue = variables.get("variableName");
}
```
其中,historyService是Activiti提供的历史数据查询服务,getTaskService()方法用于获取TaskService对象,从而可以调用getVariables()方法来获取任务变量值。需要注意的是,需要先添加排序规则,按照任务结束时间升序排序,才能确保获取到的历史任务是按照时间顺序排列的。
阅读全文