@RequestMapping("/leaveApplication/history") public String history(@RequestParam String processInstanceId) { HistoryService historyService = processEngine.getHistoryService(); List<HistoricActivityInstance> activities = historyService.createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId) .finished() .orderByHistoricActivityInstanceEndTime().asc() .list(); for (HistoricActivityInstance activity : activities) { LOGGER.info("{}花费{}毫秒", activity.getActivityId() , activity.getDurationInMillis()); } return "history"; }
public String getActivityType(String processInstanceId, String executionId, String activityId) { List<HistoricActivityInstance> historicInstancesList = processEngine.getHistoryService() .createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId) .activityId(activityId) .executionId(executionId) .orderByHistoricActivityInstanceEndTime() .desc() .list(); return !historicInstancesList.isEmpty() ? historicInstancesList.get(0) .getActivityType() : null; }
private HistoricActivityInstance getHistoricActivityInstance(String processId, String activityType) { return processEngine.getHistoryService() .createHistoricActivityInstanceQuery() .activityType(activityType) .processInstanceId(processId) .singleResult(); }
@Override public void processEndedAndInExclusiveEndEvent(final String processInstanceId, final String endEventId) { // Assert the process instance is ended getAssertFactory().getProcessInstanceAssertable(callback).processIsEnded(processInstanceId); // Assert that there is exactly one historic activity instance for end // events and that it has the correct id callback.trace(LogMessage.PROCESS_10, processInstanceId, endEventId); final List<HistoricActivityInstance> historicActivityInstances = getHistoryService().createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId).activityType("endEvent").finished().list(); Assert.assertThat(historicActivityInstances.size(), is(1)); Assert.assertThat(historicActivityInstances.get(0).getActivityId(), is(endEventId)); }
final List<HistoricActivityInstance> historicActivityInstances = getHistoryService().createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId).activityType("endEvent").finished().list();
private List<HistoricActivityInstance> findCurrentActivitiesAtReceiveTask(Execution execution) { return processEngine.getHistoryService() .createHistoricActivityInstanceQuery() .activityId(execution.getActivityId()) .executionId(execution.getId()) .activityType("receiveTask") .list(); }
@RequestMapping(value = "/rest/process-instances/history/{processInstanceId}/model-json", method = RequestMethod.GET, produces = "application/json") public JsonNode getModelHistoryJSON(@PathVariable String processInstanceId) { User currentUser = SecurityUtils.getCurrentUserObject(); if (!permissionService.hasReadPermissionOnProcessInstance(currentUser, processInstanceId)) { throw new NotPermittedException(); } HistoricProcessInstance processInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); if (processInstance == null) { throw new BadRequestException("No process instance found with id " + processInstanceId); } BpmnModel pojoModel = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId()); if (pojoModel == null || pojoModel.getLocationMap().isEmpty()) { throw new InternalServerErrorException("Process definition could not be found with id " + processInstance.getProcessDefinitionId()); } // Fetch process-instance activities List<HistoricActivityInstance> activityInstances = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).list(); Set<String> completedActivityInstances = new HashSet<>(); Set<String> currentActivityinstances = new HashSet<>(); if (CollectionUtils.isNotEmpty(activityInstances)) { for (HistoricActivityInstance activityInstance : activityInstances) { if (activityInstance.getEndTime() != null) { completedActivityInstances.add(activityInstance.getActivityId()); } else { currentActivityinstances.add(activityInstance.getActivityId()); } } } ObjectNode displayNode = processProcessElements(pojoModel, completedActivityInstances, currentActivityinstances, Collections.EMPTY_LIST, processInstanceId); return displayNode; }
protected void assertHistoricActivitiesDeleteReason(ProcessInstance processInstance, String expectedDeleteReason, String... activityIds) { if (processEngineConfiguration.getHistoryLevel().isAtLeast(HistoryLevel.AUDIT)) { for (String activityId : activityIds) { List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery() .activityId(activityId).processInstanceId(processInstance.getId()).list(); assertTrue("Could not find historic activities", historicActivityInstances.size() > 0); for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) { assertNotNull(historicActivityInstance.getEndTime()); if (expectedDeleteReason == null) { assertNull(historicActivityInstance.getDeleteReason()); } else { assertTrue(historicActivityInstance.getDeleteReason().startsWith(expectedDeleteReason)); } } } } }
List<HistoricActivityInstance> activityInstances = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).list();
metrics.put("completedActivities", processEngine.getHistoryService().createHistoricActivityInstanceQuery().finished().count());
List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId).list(); if (historicActivityInstances != null && historicActivityInstances.size() > 0) {
List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId).list(); if (historicActivityInstances != null && historicActivityInstances.size() > 0) {