public static HistoricCaseInstanceEntityManager getHistoricCaseInstanceEntityManager() { return getHistoricCaseInstanceEntityManager(getCommandContext()); }
@Override public List<HistoricCaseInstance> executeList(CommandContext commandContext) { ensureVariablesInitialized(); List<HistoricCaseInstance> results; if (includeCaseVariables) { results = CommandContextUtil.getHistoricCaseInstanceEntityManager(commandContext).findWithVariablesByQueryCriteria(this); } else { results = CommandContextUtil.getHistoricCaseInstanceEntityManager(commandContext).findByCriteria(this); } return results; }
@Override public long executeCount(CommandContext commandContext) { ensureVariablesInitialized(); return CommandContextUtil.getHistoricCaseInstanceEntityManager(commandContext).countByCriteria(this); }
protected HistoricCaseInstanceEntity getHistoricCaseInstanceEntity(ObjectNode historicalData, CommandContext commandContext) { String id = getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_ID); HistoricCaseInstanceEntity historicCaseInstanceEntity = CommandContextUtil.getHistoricCaseInstanceEntityManager(commandContext).findById(id); return historicCaseInstanceEntity; }
@Override public void transformJson(HistoryJobEntity job, ObjectNode historicalData, CommandContext commandContext) { HistoricCaseInstanceEntityManager historicCaseInstanceEntityManager = CommandContextUtil.getHistoricCaseInstanceEntityManager(commandContext); HistoricCaseInstanceEntity historicCaseInstanceEntity = getHistoricCaseInstanceEntity(historicalData, commandContext); if (historicCaseInstanceEntity != null) { historicCaseInstanceEntity.setName(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_NAME)); historicCaseInstanceEntityManager.update(historicCaseInstanceEntity); } }
@Override public Object execute(CommandContext commandContext) { if (caseInstanceId == null) { throw new FlowableIllegalArgumentException("caseInstanceId is null"); } // Check if case instance is still running HistoricCaseInstance instance = CommandContextUtil.getHistoricCaseInstanceEntityManager(commandContext).findById(caseInstanceId); if (instance == null) { throw new FlowableObjectNotFoundException("No historic case instance found with id: " + caseInstanceId, HistoricCaseInstance.class); } if (instance.getEndTime() == null) { throw new FlowableException("Case instance is still running, cannot delete historic case instance: " + caseInstanceId); } CommandContextUtil.getCmmnHistoryManager(commandContext).recordHistoricCaseInstanceDeleted(caseInstanceId); return null; }
@Override public void transformJson(HistoryJobEntity job, ObjectNode historicalData, CommandContext commandContext) { HistoricCaseInstanceEntityManager historicCaseInstanceEntityManager = CommandContextUtil.getHistoricCaseInstanceEntityManager(commandContext); String id = getStringFromJson(historicalData, "id"); HistoricCaseInstanceEntity historicCaseInstanceEntity = historicCaseInstanceEntityManager.findById(id); // If the entity is already persisted, no need to do anything. // The end event already has inserted the latest state and there is no new data in the json here. if (historicCaseInstanceEntity == null) { historicCaseInstanceEntity = historicCaseInstanceEntityManager.create(); historicCaseInstanceEntity.setId(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_ID)); historicCaseInstanceEntity.setName(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_NAME)); historicCaseInstanceEntity.setBusinessKey(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_BUSINESS_KEY)); historicCaseInstanceEntity.setParentId(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_PARENT_ID)); historicCaseInstanceEntity.setCaseDefinitionId(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_CASE_DEFINITION_ID)); historicCaseInstanceEntity.setState(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_STATE)); historicCaseInstanceEntity.setStartUserId(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_START_USER_ID)); historicCaseInstanceEntity.setStartTime(getDateFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_START_TIME)); historicCaseInstanceEntity.setTenantId(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_TENANT_ID)); historicCaseInstanceEntityManager.insert(historicCaseInstanceEntity); } }
@Override public void transformJson(HistoryJobEntity job, ObjectNode historicalData, CommandContext commandContext) { HistoricCaseInstanceEntityManager historicCaseInstanceEntityManager = CommandContextUtil.getHistoricCaseInstanceEntityManager(commandContext); HistoricCaseInstanceEntity historicCaseInstanceEntity = getHistoricCaseInstanceEntity(historicalData, commandContext); if (historicCaseInstanceEntity == null) { historicCaseInstanceEntity = historicCaseInstanceEntityManager.create(); historicCaseInstanceEntity.setId(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_ID)); historicCaseInstanceEntity.setName(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_NAME)); historicCaseInstanceEntity.setBusinessKey(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_BUSINESS_KEY)); historicCaseInstanceEntity.setParentId(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_PARENT_ID)); historicCaseInstanceEntity.setCaseDefinitionId(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_CASE_DEFINITION_ID)); historicCaseInstanceEntity.setState(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_STATE)); historicCaseInstanceEntity.setStartUserId(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_START_USER_ID)); historicCaseInstanceEntity.setStartTime(getDateFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_START_TIME)); historicCaseInstanceEntity.setTenantId(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_TENANT_ID)); historicCaseInstanceEntityManager.insert(historicCaseInstanceEntity); } else { Date endTime = getDateFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_END_TIME); historicCaseInstanceEntity.setEndTime(endTime); historicCaseInstanceEntity.setState(getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_STATE)); historicCaseInstanceEntityManager.update(historicCaseInstanceEntity); } }