public virtual ProcessInstanceWithVariables execute(CommandContext commandContext) { ProcessDefinitionEntity processDefinition = (new GetDeployedProcessDefinitionCmd(instantiationBuilder, false)).execute(commandContext); foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { checker.checkCreateProcessInstance(processDefinition); } ProcessInstanceModificationBuilderImpl modificationBuilder = instantiationBuilder.ModificationBuilder; ensureNotEmpty("At least one instantiation instruction required (e.g. by invoking startBefore(..), startAfter(..) or startTransition(..))", "instructions", modificationBuilder.ModificationOperations); // instantiate the process ActivityImpl initialActivity = determineFirstActivity(processDefinition, modificationBuilder); ExecutionEntity processInstance = processDefinition.createProcessInstance(instantiationBuilder.BusinessKey, instantiationBuilder.CaseInstanceId, initialActivity); if (!string.ReferenceEquals(instantiationBuilder.TenantId, null)) { processInstance.TenantId = instantiationBuilder.TenantId; } processInstance.SkipCustomListeners = modificationBuilder.SkipCustomListeners; VariableMap variables = modificationBuilder.ProcessVariables; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.engine.impl.persistence.entity.ExecutionVariableSnapshotObserver variablesListener = new org.camunda.bpm.engine.impl.persistence.entity.ExecutionVariableSnapshotObserver(processInstance); ExecutionVariableSnapshotObserver variablesListener = new ExecutionVariableSnapshotObserver(processInstance); processInstance.startWithoutExecuting(variables); // prevent ending of the process instance between instructions processInstance.PreserveScope = true; // apply modifications IList <AbstractProcessInstanceModificationCommand> instructions = modificationBuilder.ModificationOperations; for (int i = 0; i < instructions.Count; i++) { AbstractProcessInstanceModificationCommand instruction = instructions[i]; LOG.debugStartingInstruction(processInstance.Id, i, instruction.describe()); instruction.ProcessInstanceId = processInstance.Id; instruction.SkipCustomListeners = modificationBuilder.SkipCustomListeners; instruction.SkipIoMappings = modificationBuilder.SkipIoMappings; instruction.execute(commandContext); } if (!processInstance.hasChildren() && processInstance.Ended) { // process instance has ended regularly but this has not been propagated yet // due to preserveScope setting processInstance.propagateEnd(); } commandContext.OperationLogManager.logProcessInstanceOperation(org.camunda.bpm.engine.history.UserOperationLogEntry_Fields.OPERATION_TYPE_CREATE, processInstance.Id, processInstance.ProcessDefinitionId, processInstance.getProcessDefinition().Key, Collections.singletonList(PropertyChange.EMPTY_CHANGE)); return(new ProcessInstanceWithVariablesImpl(processInstance, variablesListener.Variables)); }
public virtual ProcessInstanceWithVariables execute(CommandContext commandContext) { ProcessDefinitionEntity processDefinition = (new GetDeployedProcessDefinitionCmd(instantiationBuilder, false)).execute(commandContext); foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { checker.checkCreateProcessInstance(processDefinition); } // Start the process instance ExecutionEntity processInstance = processDefinition.createProcessInstance(instantiationBuilder.BusinessKey, instantiationBuilder.CaseInstanceId); if (!string.ReferenceEquals(instantiationBuilder.TenantId, null)) { processInstance.TenantId = instantiationBuilder.TenantId; } //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.engine.impl.persistence.entity.ExecutionVariableSnapshotObserver variablesListener = new org.camunda.bpm.engine.impl.persistence.entity.ExecutionVariableSnapshotObserver(processInstance); ExecutionVariableSnapshotObserver variablesListener = new ExecutionVariableSnapshotObserver(processInstance); processInstance.start(instantiationBuilder.Variables); commandContext.OperationLogManager.logProcessInstanceOperation(org.camunda.bpm.engine.history.UserOperationLogEntry_Fields.OPERATION_TYPE_CREATE, processInstance.Id, processInstance.ProcessDefinitionId, processInstance.getProcessDefinition().Key, Collections.singletonList(PropertyChange.EMPTY_CHANGE)); return(new ProcessInstanceWithVariablesImpl(processInstance, variablesListener.Variables)); }
public virtual IProcessInstanceWithVariables Execute(CommandContext commandContext) { var processDefinition = new GetDeployedProcessDefinitionCmd(InstantiationBuilder, false).Execute(commandContext); foreach (var checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { checker.CheckCreateProcessInstance(processDefinition); } var modificationBuilder = InstantiationBuilder.ModificationBuilder; EnsureUtil.EnsureNotEmpty( @"At least one instantiation instruction required (e.g. by invoking startBefore(..), startAfter(..) or startTransition(..))", "instructions", ListExt.ConvertToIlist(modificationBuilder.ModificationOperations)); // instantiate the process var initialActivity = DetermineFirstActivity(processDefinition, modificationBuilder); ExecutionEntity processInstance = (ExecutionEntity)processDefinition.CreateProcessInstance(InstantiationBuilder.BusinessKey, InstantiationBuilder.CaseInstanceId, initialActivity); processInstance.SkipCustomListeners = modificationBuilder.SkipCustomListeners; var variables = modificationBuilder.ProcessVariables; ExecutionVariableSnapshotObserver variablesListener = new ExecutionVariableSnapshotObserver(processInstance); processInstance.StartWithoutExecuting(variables); // prevent ending of the process instance between instructions processInstance.PreserveScope = true; // apply modifications var instructions = modificationBuilder.ModificationOperations; for (var i = 0; i < instructions.Count; i++) { var instruction = instructions[i]; Log.DebugStartingInstruction(processInstance.Id, i, instruction.Describe()); instruction.ProcessInstanceId = processInstance.Id; instruction.SkipCustomListeners = modificationBuilder.SkipCustomListeners; instruction.SkipIoMappings = modificationBuilder.SkipIoMappings; instruction.Execute(commandContext); } if (!processInstance.HasChildren() && processInstance.IsEnded) { // process instance has ended regularly but this has not been propagated yet // due to preserveScope setting processInstance.PropagateEnd(); } return(new ProcessInstanceWithVariablesImpl(processInstance, variablesListener.Variables)); }
public virtual VariableMap execute(CommandContext commandContext) { ensureNotNull("taskId", taskId); TaskManager taskManager = commandContext.TaskManager; TaskEntity task = taskManager.findTaskById(taskId); ensureNotNull("Cannot find task with id " + taskId, "task", task); checkCompleteTask(task, commandContext); if (variables != null) { task.ExecutionVariables = variables; } ExecutionEntity execution = task.ProcessInstance; ExecutionVariableSnapshotObserver variablesListener = null; if (returnVariables && execution != null) { variablesListener = new ExecutionVariableSnapshotObserver(execution, false, deserializeReturnedVariables); } completeTask(task); if (returnVariables) { if (variablesListener != null) { return(variablesListener.Variables); } else { return(!string.ReferenceEquals(task.CaseDefinitionId, null) ? null : task.getVariablesTyped(false)); } } else { return(null); } }
public virtual IProcessInstanceWithVariables Execute(CommandContext commandContext) { var processDefinition = new GetDeployedProcessDefinitionCmd(InstantiationBuilder, false).Execute(commandContext); foreach (var checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { checker.CheckCreateProcessInstance(processDefinition); } // Start the process instance Pvm.IPvmProcessInstance processInstance = processDefinition.CreateProcessInstance(InstantiationBuilder.BusinessKey, InstantiationBuilder.CaseInstanceId); ExecutionVariableSnapshotObserver variablesListener = new ExecutionVariableSnapshotObserver(processInstance); processInstance.Start(InstantiationBuilder.Variables); return(new ProcessInstanceWithVariablesImpl(processInstance, variablesListener.Variables)); }
public virtual VariableMap execute(CommandContext commandContext) { ensureNotNull("taskId", taskId); TaskManager taskManager = commandContext.TaskManager; TaskEntity task = taskManager.findTaskById(taskId); ensureNotNull("Cannot find task with id " + taskId, "task", task); foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { checker.checkTaskWork(task); } TaskDefinition taskDefinition = task.TaskDefinition; if (taskDefinition != null) { TaskFormHandler taskFormHandler = taskDefinition.TaskFormHandler; taskFormHandler.submitFormVariables(properties, task); } else { // set variables on standalone task task.Variables = properties; } ExecutionEntity execution = task.ProcessInstance; ExecutionVariableSnapshotObserver variablesListener = null; if (returnVariables && execution != null) { variablesListener = new ExecutionVariableSnapshotObserver(execution, false, deserializeValues); } // complete or resolve the task if (DelegationState.PENDING.Equals(task.DelegationState)) { task.resolve(); task.createHistoricTaskDetails(org.camunda.bpm.engine.history.UserOperationLogEntry_Fields.OPERATION_TYPE_RESOLVE); } else { task.complete(); task.createHistoricTaskDetails(org.camunda.bpm.engine.history.UserOperationLogEntry_Fields.OPERATION_TYPE_COMPLETE); } if (returnVariables) { if (variablesListener != null) { return(variablesListener.Variables); } else { return(string.ReferenceEquals(task.CaseDefinitionId, null) ? null : task.getVariablesTyped(false)); } } else { return(null); } }