public static void removeAllInstanceEvents(final ProcessInstance instance) { final EventService eventService = EnvTool.getEventService(); eventService.removeSubscriptions(instance.getUUID()); eventService.removeFiredEvents(instance.getUUID()); eventService.removeJobs(instance.getUUID()); eventService.removeLock(instance.getRootInstanceUUID()); }
private Object getModifiedJavaObject(final String variableExpression, final Object attributeValue, final ActivityInstance activity, final ProcessInstance processInstance) throws ActivityNotFoundException, VariableNotFoundException, InstanceNotFoundException { final String variableName = Misc.getVariableName(variableExpression); ActivityInstanceUUID activityUUID = null; if (activity != null) { activityUUID = activity.getUUID(); } ProcessInstanceUUID processInstanceUUID = null; if (processInstance != null) { processInstanceUUID = processInstance.getUUID(); } final Object data = getVariable(variableName, activityUUID, processInstanceUUID); final ProcessDefinitionUUID processDefUUID = getProcessDefinitionUUID(activity, processInstance); return getModifiedJavaObject(processDefUUID, variableExpression, data, attributeValue); }
if (processInstance != null) { useInitValues = !useCurrentVariableValues; processInstanceUUID = processInstance.getUUID(); parentProcessDefinitionUUID = processInstance.getProcessDefinitionUUID(); parentProcessInstanceUUID = processInstanceUUID;
private void deleteAllProcessInstances(final ProcessDefinition process) throws ProcessNotFoundException, UndeletableInstanceException { FacadeUtil.checkArgsNotNull(process); final ProcessDefinitionUUID processUUID = process.getUUID(); final Querier querier = EnvTool.getAllQueriers(); List<InternalProcessInstance> parentProcessInstances = querier.getParentProcessInstances(processUUID, 0, 200); do { for (final InternalProcessInstance parentProcessInstance : parentProcessInstances) { try { deleteProcessInstance(parentProcessInstance.getUUID()); } catch (final InstanceNotFoundException infe) { final String message = ExceptionManager.getInstance().getFullMessage("bai_RAPII_6"); throw new BonitaInternalException(message, infe); } } parentProcessInstances = querier.getParentProcessInstances(processUUID, 0, 200); } while (!parentProcessInstances.isEmpty()); final Set<InternalProcessInstance> instances = querier.getProcessInstances(processUUID); if (instances != null && !instances.isEmpty()) { final ProcessInstance first = instances.iterator().next(); throw new UndeletableInstanceException("bai_RAPII_7", first.getUUID(), first.getParentInstanceUUID()); } }
public void deleteAllProcessInstances(ProcessDefinitionUUID processUUID) throws ProcessNotFoundException, UndeletableInstanceException { FacadeUtil.checkArgsNotNull(processUUID); Querier querier = EnvTool.getAllQueriers(); ProcessFullDefinition process = querier.getProcess(processUUID); if (process == null) { throw new ProcessNotFoundException(processUUID); } Set<ProcessFullInstance> instances = querier.getProcessInstances(processUUID); for (ProcessFullInstance instance : instances) { //deletes only parent instances if (instance.getParentInstanceUUID() == null) { try { deleteProcessInstance(instance.getUUID()); } catch (InstanceNotFoundException e) { throw new BonitaInternalException("Invalid state", e); } } } instances = querier.getProcessInstances(processUUID); if (instances != null && !instances.isEmpty()) { ProcessInstance first = instances.iterator().next(); throw new UndeletableInstanceException(first.getUUID(), first.getParentInstanceUUID()); } }
private ProcessInstanceUUID instantiateProcess(final ProcessDefinitionUUID processUUID, final Map<String, Object> variables, final Collection<InitialAttachment> attachments, final ActivityDefinitionUUID activityUUID) throws ProcessNotFoundException, VariableNotFoundException { FacadeUtil.checkArgsNotNull(processUUID); final ProcessState state = new QueryDefinitionAPIImpl(queryList).getProcess(processUUID).getState(); if (ProcessState.DISABLED.equals(state)) { final String message = ExceptionManager.getInstance().getFullMessage("bai_RAPII_36", processUUID); throw new BonitaRuntimeException(message); } if (LOG.isLoggable(Level.FINE)) { LOG.fine("Starting a new instance of process : " + processUUID); } final Execution rootExecution = ProcessUtil.createProcessInstance(processUUID, variables, attachments, null, null, activityUUID, null); if (LOG.isLoggable(Level.FINE)) { LOG.fine("Started: " + rootExecution.getInstance()); } final ProcessInstance instance = rootExecution.getInstance(); final ProcessInstanceUUID instanceUUID = instance.getUUID(); ProcessUtil.startEventSubProcesses(instance); rootExecution.getInstance().begin(activityUUID); return instanceUUID; }
public static void startEventSubProcesses(final ProcessInstance instance) throws ProcessNotFoundException { final ProcessInstanceUUID instanceUUID = instance.getUUID(); final InternalProcessDefinition process = FacadeUtil.getProcessDefinition(instance.getProcessDefinitionUUID()); final EventService eventService = EnvTool.getEventService(); eventInstance.setPermanent(true); eventInstance.setEventSubProcessRootInstanceUUID(instanceUUID); addCorrelationKeys(event, eventInstance, instance.getUUID()); eventService.subscribe(eventInstance);