activiti 获取结束流程审批结果 可以帮写一下嘛
时间: 2024-06-10 13:05:59 浏览: 47
当您在 activiti 中结束流程时,您可以从历史记录中获取流程的审批结果。以下是获取 activiti 流程结束审批结果的示例代码:
```
List<HistoricTaskInstance> taskList = historyService.createHistoricTaskInstanceQuery().processInstanceId(processInstanceId).finished().list();
String approvalResult = "";
for(HistoricTaskInstance task : taskList){
approvalResult = task.getProcessVariables().get("approvedResult").toString();
}
```
在上面的代码中,我们首先获取已完成的历史任务实例列表。然后,我们可以遍历历史任务实例,并从每个任务的流程变量中获取审批结果。
请注意,您需要将 "approvedResult" 替换为实际用于存储审批结果的流程变量名称。
希望这可以回答您的问题!
相关问题
activiti 获取已完成的流程审批结果和原因详情 可以下一吗
可以的,你可以使用以下代码获取已完成的流程审批结果和原因详情:
```
List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery()
.processInstanceId(processInstanceId)
.orderByHistoricActivityInstanceStartTime().asc()
.list();
for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) {
String activityId = historicActivityInstance.getActivityId();
if (activityId.equals("endEvent")) { // 流程结束节点
String processInstanceId = historicActivityInstance.getProcessInstanceId();
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
String endActivityInstanceId = historicActivityInstance.getId();
List<HistoricVariableInstance> variableInstances = historyService.createHistoricVariableInstanceQuery()
.processInstanceId(processInstanceId)
.activityInstanceId(endActivityInstanceId)
.list();
for (HistoricVariableInstance variableInstance : variableInstances) {
String variableName = variableInstance.getVariableName();
Object value = variableInstance.getValue();
System.out.println("variableName=" + variableName + ", value=" + value);
}
break;
}
}
```
该代码使用 Activiti 的 HistoryService API 获取已完成的流程审批结果和原因详情。具体来说,它获取所有历史活动实例,根据流程结束节点找到对应的历史流程实例,并从该历史流程实例中获取流程变量的值。最终,它打印流程变量的名称和值。