private XpdlExecution getExecOnNode(XpdlExecution exec, String nodeName, String iterationId, String activityInstanceId) { Misc.checkArgsNotNull(exec, nodeName, iterationId, activityInstanceId); if (exec.getExecutions() == null || exec.getExecutions().isEmpty()) { if (exec.getNode() != null && exec.getNode().getName().equals(nodeName) && exec.getIterationId().equals(iterationId) && exec.getActivityInstanceId().equals(activityInstanceId)) { return exec; } } for (Execution child : exec.getExecutions()) { XpdlExecution found = getExecOnNode((XpdlExecution) child, nodeName, iterationId, activityInstanceId); if (found != null) { return found; } } return null; }
public TaskRunTime(TaskUUID taskUUID, String nodeName, AbstractActivity abstractActivity, XpdlExecution xpdlExecution) { this.taskUUID = taskUUID; this.activityDef = abstractActivity; this.activityId = nodeName; this.xpdlExecution = xpdlExecution; this.instanceUUID = xpdlExecution.getXpdlInstance().getUUID(); this.packageUUID = xpdlExecution.getProcessDefinition().getPackageDefinitionUUID(); this.iterationId = xpdlExecution.getIterationId(); this.activityInstanceId = xpdlExecution.getActivityInstanceId(); }
public TaskRunTime(final TaskUUID taskUUID, final String nodeName, final AbstractActivity abstractActivity, final XpdlExecution xpdlExecution) { this.taskUUID = taskUUID; this.activityDef = abstractActivity; this.activityId = nodeName; this.xpdlExecution = xpdlExecution; this.instanceUUID = xpdlExecution.getXpdlInstance().getUUID(); this.packageUUID = xpdlExecution.getProcessDefinition().getPackageDefinitionUUID(); this.iterationId = xpdlExecution.getIterationId(); this.activityInstanceId = xpdlExecution.getActivityInstanceId(); }
public void recordBodyEnded(AbstractActivity activity, XpdlExecution xpdlExecution) { Misc.checkArgsNotNull(activity, xpdlExecution); final String activityId = activity.getActivityId(); ProcessInstanceUUID instanceUUID = xpdlExecution.getXpdlInstance().getUUID(); final String iterationId = xpdlExecution.getIterationId(); final String activityInstanceId = xpdlExecution.getActivityInstanceId(); ActivityFullInstance<ActivityBody> activityInstance = getActivityInstance(instanceUUID, activityId, iterationId, activityInstanceId); ((ActivityBodyImpl)activityInstance.getBody()).setEndedDate(new Date()); }
public void recordBodyStarted(AbstractActivity activity, XpdlExecution xpdlExecution) { Misc.checkArgsNotNull(activity, xpdlExecution); final String activityId = activity.getActivityId(); ProcessInstanceUUID instanceUUID = xpdlExecution.getXpdlInstance().getUUID(); final String iterationId = xpdlExecution.getIterationId(); final String activityInstanceId = xpdlExecution.getActivityInstanceId(); ActivityFullInstance<ActivityBody> activityInstance = getActivityInstance(instanceUUID, activityId, iterationId, activityInstanceId); ((ActivityBodyImpl)activityInstance.getBody()).setStartedDate(new Date()); }
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); } }
final ProcessInstanceUUID instanceUUID = instance.getUUID(); final String iterationId = execution.getIterationId(); final String activityInstanceId = execution.getActivityInstanceId(); final ProcessDefinitionUUID processUUID = instance.getProcessDefinitionUUID(); boolean inTransaction = javaHook.isInTransaction();
@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(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); } }
private boolean executeBody(final XpdlExecution xpdlExecution) { if (this.bodyStartAutomatically()) { 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().recordBodyStarted(activityInstanceCurrentInfo); } return this.executeBusinessLogic(xpdlExecution); }
activity.getActivityId(), this.getIterationId(), this.getActivityInstanceId(), this.getScopeVariables());
execution.getNode().getName(), execution.getIterationId(), execution.getActivityInstanceId(), EnvTool.getUserId());
public void recordEnterActivity(final AbstractActivity activity, final XpdlExecution xpdlExecution) { Misc.checkArgsNotNull(activity, xpdlExecution); final NodeImpl node = xpdlExecution.getNode(); XpdlInstance instance = xpdlExecution.getXpdlInstance(); final String id = node.getName(); final PackageDefinitionUUID packageUUID = instance.getPackageDefinitionUUID(); final ProcessDefinitionUUID processUUID = instance.getProcessDefinitionUUID(); final ProcessInstanceUUID instanceUUID = instance.getUUID(); final String iterationId = xpdlExecution.getIterationId(); final String activityInstanceId = xpdlExecution.getActivityInstanceId(); final ActivityFullInstanceImpl<ActivityBody> activityRecord = new ActivityFullInstanceImpl<ActivityBody>( new ActivityInstanceUUID(instanceUUID, activity.getActivityId(), EnvTool.getRepository().getNextActivityInstanceNb(instanceUUID, activity.getActivityId())), id, packageUUID, processUUID, instanceUUID, iterationId, activityInstanceId); ActivityBody body = activity.getBody(xpdlExecution, activityRecord); activityRecord.setBody(body); ProcessFullInstance processInstance = getProcessInstance(instanceUUID); processInstance.addActivity(activityRecord); activityRecord.setVariablesBeforeReady(xpdlExecution.getScopeVariables()); }
protected void executeActivityInstance(final XpdlExecution xpdlExecution) { xpdlExecution.setCurrentActivityInstanceUUID( ServiceEnvTool.getUUIDGenerator(). getActivityInstanceUUID(xpdlExecution.getXpdlInstance().getUUID(), this.activityId)); final Recorder recorder = ServiceEnvTool.getRecorder(); final XpdlInstance xpdlInstance = xpdlExecution.getXpdlInstance(); final ActivityInstanceCurrentInfo activityInstanceCurrentInfo = new ActivityInstanceCurrentInfo( xpdlInstance.getPackageDefinitionUUID(), xpdlInstance.getProcessDefinitionUUID(), xpdlInstance.getUUID(), xpdlExecution.getCurrentActivityInstanceUUID(), this.getActivityType(), this.getActivityId(), xpdlExecution.getIterationId(), xpdlExecution.getActivityInstanceId(), xpdlExecution.getScopeVariables()); recorder.recordEnterActivity(activityInstanceCurrentInfo); final boolean canContinue = this.executeBody(xpdlExecution); if (canContinue) { this.end(xpdlExecution); } else { xpdlExecution.waitForSignal(); } }
this.getActivityId(), this.xpdlExecution.getIterationId(), this.xpdlExecution.getActivityInstanceId(), this.xpdlExecution.getScopeVariables());
this.getActivityId(), xpdlExecution.getIterationId(), xpdlExecution.getActivityInstanceId(), xpdlExecution.getScopeVariables());
activity.getActivityId(), this.getIterationId(), this.getActivityInstanceId(), this.getScopeVariables());
@Override public void signal(final ActivityExecution execution, final String signal, final Map<String, Object> parameters) { final XpdlExecution xpdlExecution = (XpdlExecution) execution; final XpdlInstance xpdlInstance = xpdlExecution.getXpdlInstance(); xpdlInstance.setInstanceState(InstanceState.STARTED); final Recorder recorder = ServiceEnvTool.getRecorder(); recorder.recordInstanceStarted(new ProcessInstanceCurrentInfo( xpdlInstance.getPackageDefinitionUUID(), xpdlInstance.getProcessDefinitionUUID(), xpdlInstance.getUUID(), (xpdlInstance.getParentInstance() != null) ? xpdlInstance.getParentInstance().getUUID() : null, xpdlExecution.getVariables(), ServiceEnvTool.getUserId()) ); final ActivityInstanceCurrentInfo activityInstanceCurrentInfo = new ActivityInstanceCurrentInfo( xpdlInstance.getPackageDefinitionUUID(), xpdlInstance.getProcessDefinitionUUID(), xpdlInstance.getUUID(), xpdlExecution.getCurrentActivityInstanceUUID(), this.getActivityType(), this.getActivityId(), xpdlExecution.getIterationId(), xpdlExecution.getActivityInstanceId(), xpdlExecution.getScopeVariables()); recorder.recordEnterActivity(activityInstanceCurrentInfo); recorder.recordBodyStarted(activityInstanceCurrentInfo); recorder.recordBodyEnded(activityInstanceCurrentInfo); executeSplit(execution, false); }