activiti通过已经审批结束的taskid获取当前流程的模板定义的
时间: 2024-10-18 21:20:26 浏览: 31
在Activiti(也称为Apache Camunda)中,activiti-task-id通常关联着一个活动实例的任务,而这个任务是在工作流流程中的一部分。如果你想要从一个已审批结束的任务ID(taskid)获取该任务所对应的流程模板定义,你需要访问 Activiti的历史服务(HistoricTaskService)。
首先,你需要创建一个HistoricTaskService的实例。然后,你可以使用`getHistoricTaskInstance(taskId)`方法来查询历史任务信息,包括它所属的流程实例(ProcessInstance)。流程实例包含了流程定义的详细信息,如流程模板(processDefinition)。
以下是一个简单的步骤示例:
```java
HistoricTaskService taskService = processEngine.getHistoryService();
HistoricTaskInstance historicTask = taskService.getHistoricTaskInstance(taskId);
// 获取流程实例
ProcessInstance processInstance = historicTask.getProcessInstance();
// 获得流程定义
ProcessDefinition processDefinition = historyService.createProcessDefinitionQuery()
.processInstanceId(processInstance.getId())
.singleResult();
String processTemplate = processDefinition.getName() || processDefinition.getKey(); // 这里假设名称或键就是模板定义
```
阅读全文