/** * simulate task execution * take randomly one task from the history and use its duration for simulation * */ public long simulateTaskExecution(TaskEntity execTask, Map<String, Object> variables) { List<HistoricTaskInstance> historicInstances = historyService.createHistoricTaskInstanceQuery() .taskDefinitionKey( execTask.getTaskDefinitionKey() ).finished().list(); if ( historicInstances.isEmpty() ) //use backupExecutor return backUpExecutor.simulateTaskExecution(execTask, variables); // get random historic instance HistoricTaskInstance historicTask = historicInstances.get( SimUtils.getRandomInt( historicInstances.size() )); //@TODO in version 5.12 use time spend on task return historicTask.getDurationInMillis(); }
query.taskDefinitionKey(queryRequest.getTaskDefinitionKey());
@Override public void evaluate(SimulationRunEntity simulationRun) { if (simulationRun != null) { for (ProcessDefinition processDefinition : SimulationRunContext.getRepositoryService().createProcessDefinitionQuery().active().list() ) { ProcessDefinitionEntity pde = (ProcessDefinitionEntity) ((RepositoryServiceImpl)SimulationRunContext.getRepositoryService()) .getDeployedProcessDefinition( processDefinition.getId()); for (ActivityImpl activity : pde.getActivities()) { if ( activity.getProperty("type") != null && activity.getProperty("type") == "userTask" ) { long count = SimulationRunContext.getHistoryService().createHistoricTaskInstanceQuery() .processDefinitionKey( processDefinition.getKey()) .taskDefinitionKey( activity.getId()) .unfinished() .count(); if ( count> 0) { RuntimeService runtimeService = SimulationContext.getSimulationEngineConfiguration().getRuntimeService(); Map<String, Object> resultVariables = new HashMap<String, Object>(); resultVariables.put("processDefinitionKey", processDefinition.getKey()); resultVariables.put("taskDefinitionKey", activity.getId()); resultVariables.put( "description", Long.toString( count)); runtimeService.saveResult(type, resultVariables); } } } } } }
.taskDefinitionKey(task.getTaskDefinitionKey()).executionId(executionId).orderByHistoricTaskInstanceEndTime().desc().list();
for (HistoricTaskInstance historicTaskInstance : processEngine.getHistoryService().createHistoricTaskInstanceQuery().taskDefinitionKey("usertask1").list()) { System.out.println("historicTaskInstance = " + historicTaskInstance);
.taskDefinitionKey(this.userTaskId).singleResult() != null) {
taskQuery = taskQuery.taskDefinitionKey(getTaskDefinitionKey());
historicQuery.taskDefinitionKey(query.getTaskName().toPrefixString());
historicQuery.taskDefinitionKey(query.getTaskName().toPrefixString());