@Override public void signal(final Execution execution, final String signal, final Map<String, Object> signalParameters) { if (EventConstants.TIMER.equals(signal)) { Authentication.setUserId(BonitaConstants.SYSTEM_USER); ConnectorExecutor.executeConnectors(execution.getNode(), execution, Event.onTimer); super.signal(execution, BODY_FINISHED, null); } else { super.signal(execution, signal, signalParameters); } }
@Override public void signal(final Execution execution, final String signal, final Map<String, Object> signalParameters) { if (EventConstants.MESSAGE.equals(signal)) { Authentication.setUserId(BonitaConstants.SYSTEM_USER); ConnectorExecutor.executeConnectors(execution.getNode(), execution, Event.onEvent, signalParameters); super.signal(execution, BODY_FINISHED, null); } else { super.signal(execution, signal, signalParameters); } }
public void finish(String userId, boolean assignTask) { if (LOG.isLoggable(Level.FINE)) { LOG.fine("Finishing task : " + taskUUID + " on activity " + activityId); } final Recorder recorder = EnvTool.getRecorder(); if (assignTask) { this.userId = userId; recorder.recordTaskAssigned(this, userId, candidates, userId); } this.state = TaskState.FINISHED; recorder.recordTaskFinished(this, EnvTool.getUserId()); HookExecutor.executeHooks(activityDef.getJavaHooks(), xpdlExecution, activityId, JavaHook.Type.taskOnFinish); activityDef.signal(xpdlExecution, AbstractActivity.BODY_FINISHED, null); this.xpdlExecution = null; }
@Override public void signal(final ActivityExecution execution, final String signal, final Map<String, Object> signalParameters) { final XpdlExecution xpdlExecution = (XpdlExecution) execution; xpdlExecution.setSubflowXpdlInstance(null); if (SUBFLOW_SIGNAL.equals(signal)) { if (this.outParameters != null) { final Recorder recorder = EngineEnvTool.getRecorder(); final ProcessInstanceUUID instanceUUID = xpdlExecution.getXpdlInstance().getUUID(); for (final Map.Entry<String, String> parameter : this.outParameters.entrySet()) { final String variableId = parameter.getValue(); final Object variableValue = signalParameters.get(parameter.getKey()); execution.setVariable(variableId, variableValue); if (xpdlExecution.getXpdlInstance().getRootExecution().hasVariable(variableId)) { recorder.recordInstanceVariableUpdated(variableId, variableValue, instanceUUID, EngineEnvTool.getUserId()); } else { recorder.recordActivityVariableUpdated(variableId, variableValue, xpdlExecution.getCurrentActivityInstanceUUID(), EngineEnvTool.getUserId()); } } } super.signal(xpdlExecution, BODY_FINISHED, null); } else { super.signal(xpdlExecution, signal, signalParameters); } }
@Override public void signal(ActivityExecution execution, String signal, Map<String, Object> signalParameters) { XpdlExecution xpdlExecution = (XpdlExecution) execution; if (SUBFLOW_SIGNAL.equals(signal)) { if (outParameters != null) { final Recorder recorder = EnvTool.getRecorder(); ProcessInstanceUUID instanceUUID = xpdlExecution.getXpdlInstance().getUUID(); String activityId = xpdlExecution.getNode().getName(); for (Map.Entry<String, String> parameter : outParameters.entrySet()) { String variableId = parameter.getValue(); Object variableValue = signalParameters.get(parameter.getKey()); execution.setVariable(variableId, variableValue); if (xpdlExecution.getXpdlInstance().getRootExecution().hasVariable(variableId)) { recorder.recordInstanceVariableUpdated(variableId, variableValue, instanceUUID, EnvTool.getUserId()); } else { recorder.recordActivityVariableUpdated(variableId, variableValue, instanceUUID, activityId, xpdlExecution.getIterationId(), xpdlExecution.getActivityInstanceId(), EnvTool.getUserId()); } } } super.signal(xpdlExecution, BODY_FINISHED, null); } else { super.signal(xpdlExecution, signal, signalParameters); } }
protected void end(XpdlExecution xpdlExecution) { EnvTool.getRecorder().recordBodyEnded(this, xpdlExecution); if (!XpdlExecution.MAIN_INSTANCE_NAME.equals(xpdlExecution.getActivityInstanceId())) { // TODO: check variable values for transition conditions XpdlExecution activityInstanceExecution = (XpdlExecution) xpdlExecution.destroyScope(xpdlExecution.getNode()); activityInstanceExecution.end(); XpdlExecution parent = activityInstanceExecution.getParent(); parent.removeExecution(activityInstanceExecution); signal(parent, ACT_INSTANCE_FINISHED, null); } else { executeSplit(xpdlExecution, true); } }
abstractActivity.signal(internalExecution, AbstractActivity.BODY_SKIPPED, null); if (LOG.isLoggable(Level.FINE)) { LOG.fine("Skipped: " + activityInstance);
public Boolean execute(Environment env) throws Exception { final InternalActivityInstance activityInstance = EnvTool.getJournalQueriers().getActivityInstance(this.myActivityUUID); if (activityInstance==null) { throw new ActivityNotFoundException("R1", this.myActivityUUID); } if (activityInstance.getState() == ActivityState.FAILED) { // Set activityInstance state to READY activityInstance.setActivityState(ActivityState.READY, BonitaConstants.SYSTEM_USER); // Execute the activity Instance final Execution internalExecution = getExecution(activityInstance); final InternalActivityDefinition activityDef = internalExecution.getNode(); final AbstractActivity abstractActivity = (AbstractActivity) activityDef.getBehaviour(); abstractActivity.signal(internalExecution, EventConstants.ASYNC, null); return true; } return false; }
abstractActivity.signal(internalExecution, AbstractActivity.BODY_FINISHED, null); if (LOG.isLoggable(Level.FINE)) { LOG.fine("Terminated: " + task);
signal(parent, AbstractActivity.ACT_INSTANCE_FINISHED, null);
EngineEnvTool.getHookExecutor().executeHooks(this.activityDef.getJavaHooks(), this.xpdlExecution, this.activityId, JavaHook.Type.taskOnFinish); this.activityDef.signal(this.xpdlExecution, AbstractActivity.BODY_FINISHED, null); this.xpdlExecution = null;
protected void end(final XpdlExecution xpdlExecution) { final ActivityInstanceCurrentInfo activityInstanceCurrentInfo = new ActivityInstanceCurrentInfo( xpdlExecution.getXpdlInstance().getPackageDefinitionUUID(), xpdlExecution.getXpdlInstance().getProcessDefinitionUUID(), xpdlExecution.getXpdlInstance().getUUID(), xpdlExecution.getCurrentActivityInstanceUUID(), this.getActivityType(), this.getActivityId(), xpdlExecution.getIterationId(), xpdlExecution.getActivityInstanceId(), xpdlExecution.getScopeVariables()); ServiceEnvTool.getRecorder().recordBodyEnded(activityInstanceCurrentInfo); if (!XpdlExecution.MAIN_INSTANCE_NAME.equals(xpdlExecution.getActivityInstanceId())) { final XpdlExecution activityInstanceExecution = (XpdlExecution) xpdlExecution.destroyScope(xpdlExecution.getNode()); activityInstanceExecution.end(); final XpdlExecution parent = activityInstanceExecution.getParent(); parent.removeExecution(activityInstanceExecution); this.signal(parent, AbstractActivity.ACT_INSTANCE_FINISHED, null); } else { this.executeSplit(xpdlExecution, true); } }
signal(parent, AbstractActivity.ACT_INSTANCE_FINISHED, null); if (!internalExecution.isFinished()) {