@ApiOperation(value = " Delete a historic case instance", tags = { "History Case" }, nickname = "deleteHistoricCaseInstance") @ApiResponses(value = { @ApiResponse(code = 204, message = "Indicates that the historic process instance was deleted."), @ApiResponse(code = 404, message = "Indicates that the historic process instance could not be found.") }) @DeleteMapping(value = "/cmmn-history/historic-case-instances/{caseInstanceId}") public void deleteCaseInstance(@ApiParam(name = "caseInstanceId") @PathVariable String caseInstanceId, HttpServletResponse response) { HistoricCaseInstance caseInstance = getHistoricCaseInstanceFromRequest(caseInstanceId); if (restApiInterceptor != null) { restApiInterceptor.deleteHistoricCase(caseInstance); } cmmnhistoryService.deleteHistoricCaseInstance(caseInstance.getId()); response.setStatus(HttpStatus.NO_CONTENT.value()); }
@ApiOperation(value = "List identity links of a historic case instance", nickname="listHistoricCaseInstanceIdentityLinks", tags = { "History Case" }, notes = "") @ApiResponses(value = { @ApiResponse(code = 200, message = "Indicates request was successful and the identity links are returned", response = HistoricIdentityLinkResponse.class, responseContainer = "List"), @ApiResponse(code = 404, message = "Indicates the process instance could not be found..") }) @GetMapping(value = "/cmmn-history/historic-case-instances/{caseInstanceId}/identitylinks", produces = "application/json") public List<HistoricIdentityLinkResponse> getCaseIdentityLinks(@ApiParam(name = "caseInstanceId") @PathVariable String caseInstanceId, HttpServletRequest request) { HistoricCaseInstance caseInstance = getHistoricCaseInstanceFromRequest(caseInstanceId); List<HistoricIdentityLink> identityLinks = historyService.getHistoricIdentityLinksForCaseInstance(caseInstance.getId()); if (identityLinks != null) { return restResponseFactory.createHistoricIdentityLinkResponseList(identityLinks); } return new ArrayList<>(); } }
public RestVariable getVariableFromRequest(boolean includeBinary, String caseInstanceId, String variableName, HttpServletRequest request) { HistoricCaseInstance caseObject = getHistoricCaseInstanceFromRequest(caseInstanceId); HistoricVariableInstance variable = historyService.createHistoricVariableInstanceQuery() .caseInstanceId(caseObject.getId()) .variableName(variableName) .singleResult(); if (variable == null || variable.getValue() == null) { throw new FlowableObjectNotFoundException("Historic case instance '" + caseInstanceId + "' variable value for " + variableName + " couldn't be found.", VariableInstanceEntity.class); } else { return restResponseFactory.createRestVariable(variableName, variable.getValue(), null, caseInstanceId, CmmnRestResponseFactory.VARIABLE_HISTORY_CASE, includeBinary); } } }
public HistoricCaseInstanceResponse createHistoricCaseInstanceResponse(HistoricCaseInstance caseInstance, RestUrlBuilder urlBuilder) { HistoricCaseInstanceResponse result = new HistoricCaseInstanceResponse(); result.setBusinessKey(caseInstance.getBusinessKey()); result.setName(caseInstance.getName()); result.setEndTime(caseInstance.getEndTime()); result.setId(caseInstance.getId()); result.setCaseDefinitionId(caseInstance.getCaseDefinitionId()); result.setCaseDefinitionUrl(urlBuilder.buildUrl(CmmnRestUrls.URL_CASE_DEFINITION, caseInstance.getCaseDefinitionId())); result.setStartTime(caseInstance.getStartTime()); result.setStartUserId(caseInstance.getStartUserId()); result.setUrl(urlBuilder.buildUrl(CmmnRestUrls.URL_HISTORIC_CASE_INSTANCE, caseInstance.getId())); result.setTenantId(caseInstance.getTenantId()); return result; }
public static void deleteHistoricCaseInstance(CmmnEngineConfiguration cmmnEngineConfiguration, String caseInstanceId) { HistoricCaseInstanceEntityManager historicCaseInstanceEntityManager = cmmnEngineConfiguration.getHistoricCaseInstanceEntityManager(); HistoricCaseInstanceEntity historicCaseInstance = historicCaseInstanceEntityManager.findById(caseInstanceId); HistoricMilestoneInstanceEntityManager historicMilestoneInstanceEntityManager = cmmnEngineConfiguration.getHistoricMilestoneInstanceEntityManager(); historicMilestoneInstanceEntityManager.findHistoricMilestoneInstancesByQueryCriteria(new HistoricMilestoneInstanceQueryImpl().milestoneInstanceCaseInstanceId(historicCaseInstance.getId())) .forEach(m -> historicMilestoneInstanceEntityManager.delete(m.getId())); HistoricPlanItemInstanceEntityManager historicPlanItemInstanceEntityManager = cmmnEngineConfiguration.getHistoricPlanItemInstanceEntityManager(); historicPlanItemInstanceEntityManager.findByCriteria(new HistoricPlanItemInstanceQueryImpl().planItemInstanceCaseInstanceId(historicCaseInstance.getId())) .forEach(p -> historicPlanItemInstanceEntityManager.delete(p.getId())); CommandContextUtil.getHistoricIdentityLinkService().deleteHistoricIdentityLinksByScopeIdAndScopeType(historicCaseInstance.getId(), ScopeTypes.CMMN); if (cmmnEngineConfiguration.isEnableEntityLinks()) { CommandContextUtil.getHistoricEntityLinkService().deleteHistoricEntityLinksByScopeIdAndScopeType(historicCaseInstance.getId(), ScopeTypes.CMMN); } historicCaseInstanceEntityManager.delete(historicCaseInstance); // Also delete any sub cases that may be active historicCaseInstanceEntityManager.createHistoricCaseInstanceQuery().caseInstanceParentId(caseInstanceId).list() .forEach(c -> deleteHistoricCaseInstance(cmmnEngineConfiguration, c.getId())); }
.findHistoricalVariableInstancesByScopeIdAndScopeType(historicCaseInstanceEntity.getId(), ScopeTypes.CMMN); for (HistoricVariableInstanceEntity historicVariableInstanceEntity : historicVariableInstanceEntities) { historicVariableInstanceEntityManager.delete(historicVariableInstanceEntity); historicIdentityLinkEntityManager.deleteHistoricIdentityLinksByScopeIdAndScopeType(historicCaseInstanceEntity.getId(), ScopeTypes.CMMN); historicCaseInstanceEntityManager.delete(historicCaseInstanceEntity.getId());