public static CaseInstanceHelper getCaseInstanceHelper() { return getCaseInstanceHelper(getCommandContext()); }
protected void deleteCaseInstance() { updateChildPlanItemInstancesState(); CommandContextUtil.getCaseInstanceEntityManager(commandContext).delete(caseInstanceEntity.getId(), false, getDeleteReason()); String newState = getNewState(); CommandContextUtil.getCaseInstanceHelper(commandContext).callCaseInstanceStateChangeCallbacks(commandContext, caseInstanceEntity, caseInstanceEntity.getState(), newState); CommandContextUtil.getCmmnHistoryManager(commandContext).recordCaseInstanceEnd(caseInstanceEntity, newState); }
@Override public void execute(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntity) { CaseInstanceHelper caseInstanceHelper = CommandContextUtil.getCaseInstanceHelper(commandContext); CaseInstanceBuilder caseInstanceBuilder = new CaseInstanceBuilderImpl(). caseDefinitionKey(caseRefExpression.getValue(planItemInstanceEntity).toString()); if (StringUtils.isNotEmpty(planItemInstanceEntity.getTenantId())) { caseInstanceBuilder.tenantId(planItemInstanceEntity.getTenantId()); caseInstanceBuilder.overrideCaseDefinitionTenantId(planItemInstanceEntity.getTenantId()); } caseInstanceBuilder.parentId(planItemInstanceEntity.getCaseInstanceId()); if (fallbackToDefaultTenant != null && fallbackToDefaultTenant) { caseInstanceBuilder.fallbackToDefaultTenant(); } CaseInstanceEntity caseInstanceEntity = caseInstanceHelper.startCaseInstance(caseInstanceBuilder); // Bidirectional storing of reference to avoid queries later on caseInstanceEntity.setCallbackType(CallbackTypes.PLAN_ITEM_CHILD_CASE); caseInstanceEntity.setCallbackId(planItemInstanceEntity.getId()); planItemInstanceEntity.setReferenceType(CallbackTypes.PLAN_ITEM_CHILD_CASE); planItemInstanceEntity.setReferenceId(caseInstanceEntity.getId()); if (CommandContextUtil.getCmmnEngineConfiguration(commandContext).isEnableEntityLinks()) { EntityLinkUtil.copyExistingEntityLinks(planItemInstanceEntity.getCaseInstanceId(), caseInstanceEntity.getId(), ScopeTypes.CMMN); EntityLinkUtil.createNewEntityLink(planItemInstanceEntity.getCaseInstanceId(), caseInstanceEntity.getId(), ScopeTypes.CMMN); } if (!evaluateIsBlocking(planItemInstanceEntity)) { CommandContextUtil.getAgenda(commandContext).planCompletePlanItemInstanceOperation((PlanItemInstanceEntity) planItemInstanceEntity); } }