实际上我想在当前任务中使用上一个任务名称,那么如何在activiti的当前任务中获取上一个任务名称。如果有人知道你能帮助我吗?
例如:TASK1==>TASK2==>TASK3
我想在 task2 中使用 task1 名称,在 task1 中使用 task2 名称。
实际上我想在当前任务中使用上一个任务名称,那么如何在activiti的当前任务中获取上一个任务名称。如果有人知道你能帮助我吗?
例如:TASK1==>TASK2==>TASK3
我想在 task2 中使用 task1 名称,在 task1 中使用 task2 名称。
您可以从当前的流程实例中获取它:
@Service
public class SomeWorkflowService {
@Autowired
HistoryService historyService;
@Autowired
TaskService taskService;
public Map<String, Object> currentTaskService(String currentTaskId) {
Map<String, Object> taskMap = new HashMap<>();
Task currentTask = taskService.createTaskQuery().taskId(currentTaskId).singleResult();
HistoricTaskInstance previousTask = findPreviousTask(currentTask.getProcessInstanceId());
taskMap.put("Current task name: ", currentTask.getName());
taskMap.put("Previous task name: ", previousTask.getName());
return taskMap;
}
// Order tasks by end date and get the latest
public HistoricTaskInstance findPreviousTask(String processInstanceId) {
return historyService.createHistoricTaskInstanceQuery().
processInstanceId(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list().get(0);
}
}
这种简单的算法可能存在一些问题。例如,我在应用程序中有多个子进程,或者可能有并行执行的任务,那么我正在使用更复杂的算法来查找以前的任务。