protected static IncidentEntity create(String incidentType) { String incidentId = Context.getProcessEngineConfiguration() .getDbSqlSessionFactory() .getIdGenerator() .getNextId(); // decorate new incident IncidentEntity newIncident = new IncidentEntity(); newIncident.setId(incidentId); newIncident.setIncidentTimestamp(ClockUtil.getCurrentTime()); newIncident.setIncidentType(incidentType); newIncident.setCauseIncidentId(incidentId); newIncident.setRootCauseIncidentId(incidentId); return newIncident; }
protected static IncidentEntity create(String incidentType) { String incidentId = Context.getProcessEngineConfiguration() .getDbSqlSessionFactory() .getIdGenerator() .getNextId(); // decorate new incident IncidentEntity newIncident = new IncidentEntity(); newIncident.setId(incidentId); newIncident.setIncidentTimestamp(ClockUtil.getCurrentTime()); newIncident.setIncidentType(incidentType); newIncident.setCauseIncidentId(incidentId); newIncident.setRootCauseIncidentId(incidentId); return newIncident; }
/** Instantiate recursive a new incident a super execution * (i.e. super process instance) which is affected from this * incident. * For example: a super process instance called via CallActivity * a new process instance on which an incident happened, so that * the super process instance has an incident too. */ protected void createRecursiveIncidents(String rootCauseIncidentId, List<IncidentEntity> createdIncidents) { final ExecutionEntity execution = getExecution(); if(execution != null) { ExecutionEntity superExecution = execution.getProcessInstance().getSuperExecution(); if (superExecution != null) { // create a new incident IncidentEntity newIncident = create(incidentType); newIncident.setExecution(superExecution); newIncident.setActivityId(superExecution.getCurrentActivityId()); newIncident.setProcessDefinitionId(superExecution.getProcessDefinitionId()); newIncident.setTenantId(superExecution.getTenantId()); // set cause and root cause newIncident.setCauseIncidentId(id); newIncident.setRootCauseIncidentId(rootCauseIncidentId); // insert new incident (and create a new historic incident) insert(newIncident); // add new incident to result set createdIncidents.add(newIncident); newIncident.createRecursiveIncidents(rootCauseIncidentId, createdIncidents); } } }
/** Instantiate recursive a new incident a super execution * (i.e. super process instance) which is affected from this * incident. * For example: a super process instance called via CallActivity * a new process instance on which an incident happened, so that * the super process instance has an incident too. */ protected void createRecursiveIncidents(String rootCauseIncidentId, List<IncidentEntity> createdIncidents) { final ExecutionEntity execution = getExecution(); if(execution != null) { ExecutionEntity superExecution = execution.getProcessInstance().getSuperExecution(); if (superExecution != null) { // create a new incident IncidentEntity newIncident = create(incidentType); newIncident.setExecution(superExecution); newIncident.setActivityId(superExecution.getCurrentActivityId()); newIncident.setProcessDefinitionId(superExecution.getProcessDefinitionId()); newIncident.setTenantId(superExecution.getTenantId()); // set cause and root cause newIncident.setCauseIncidentId(id); newIncident.setRootCauseIncidentId(rootCauseIncidentId); // insert new incident (and create a new historic incident) insert(newIncident); // add new incident to result set createdIncidents.add(newIncident); newIncident.createRecursiveIncidents(rootCauseIncidentId, createdIncidents); } } }
protected static IncidentEntity create(String incidentType) { String incidentId = Context.getProcessEngineConfiguration() .getDbSqlSessionFactory() .getIdGenerator() .getNextId(); // decorate new incident IncidentEntity newIncident = new IncidentEntity(); newIncident.setId(incidentId); newIncident.setIncidentTimestamp(ClockUtil.getCurrentTime()); newIncident.setIncidentType(incidentType); newIncident.setCauseIncidentId(incidentId); newIncident.setRootCauseIncidentId(incidentId); return newIncident; }
/** Instantiate recursive a new incident a super execution * (i.e. super process instance) which is affected from this * incident. * For example: a super process instance called via CallActivity * a new process instance on which an incident happened, so that * the super process instance has an incident too. */ protected void createRecursiveIncidents(String rootCauseIncidentId, List<IncidentEntity> createdIncidents) { final ExecutionEntity execution = getExecution(); if(execution != null) { ExecutionEntity superExecution = execution.getProcessInstance().getSuperExecution(); if (superExecution != null) { // create a new incident IncidentEntity newIncident = create(incidentType); newIncident.setExecution(superExecution); newIncident.setActivityId(superExecution.getCurrentActivityId()); newIncident.setProcessDefinitionId(superExecution.getProcessDefinitionId()); newIncident.setTenantId(superExecution.getTenantId()); // set cause and root cause newIncident.setCauseIncidentId(id); newIncident.setRootCauseIncidentId(rootCauseIncidentId); // insert new incident (and create a new historic incident) insert(newIncident); // add new incident to result set createdIncidents.add(newIncident); newIncident.createRecursiveIncidents(rootCauseIncidentId, createdIncidents); } } }