实际上我想在当前任务中使用上一个任务名称,以便如何在activiti中获取当前任务中的上一个任务名称。如果有人知道你能帮助我吗?
例如:TASK1 ==> TASK2 ==> TASK3
我想在task1中使用task1名称,在task1中使用task2名称。
答案 0 :(得分:1)
您可以从当前的流程实例中获取它:
@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);
}
}
这种简单算法可能存在一些问题。例如,我在应用程序中有多个子进程,或者可能有并行执行的任务,然后我使用更复杂的算法来查找以前的任务。