public Void call() { ProcessInstanceModificationBuilderImpl builder = (ProcessInstanceModificationBuilderImpl)(new ProcessInstanceModificationBuilderImpl(commandContext, superExecution.ProcessInstanceId, deleteReason)).cancelActivityInstance(superExecution.ActivityInstanceId); builder.execute(false, skipCustomListeners, skipIoMappings); return(null); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: protected org.camunda.bpm.engine.impl.ProcessInstanceModificationBuilderImpl createProcessInstanceModificationBuilder(final String processInstanceId, final org.camunda.bpm.engine.impl.interceptor.CommandContext commandContext) protected internal virtual ProcessInstanceModificationBuilderImpl createProcessInstanceModificationBuilder(string processInstanceId, CommandContext commandContext) { ProcessInstanceModificationBuilderImpl processInstanceModificationBuilder = new ProcessInstanceModificationBuilderImpl(commandContext, processInstanceId); IList <AbstractProcessInstanceModificationCommand> operations = processInstanceModificationBuilder.ModificationOperations; ActivityInstance activityInstanceTree = null; foreach (AbstractProcessInstanceModificationCommand instruction in builder.Instructions) { instruction.ProcessInstanceId = processInstanceId; if (!(instruction is ActivityCancellationCmd) || !((ActivityCancellationCmd)instruction).CancelCurrentActiveActivityInstances) { operations.Add(instruction); } else { if (activityInstanceTree == null) { activityInstanceTree = commandContext.runWithoutAuthorization(new CallableAnonymousInnerClass(this, processInstanceId, commandContext)); } ActivityCancellationCmd cancellationInstruction = (ActivityCancellationCmd)instruction; IList <AbstractInstanceCancellationCmd> cmds = cancellationInstruction.createActivityInstanceCancellations(activityInstanceTree, commandContext); ((IList <AbstractProcessInstanceModificationCommand>)operations).AddRange(cmds); } } return(processInstanceModificationBuilder); }
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)); }
/// <summary> /// get the activity that is started by the first instruction, if exists; /// return null if the first instruction is a start-transition instruction /// </summary> protected internal virtual ActivityImpl DetermineFirstActivity(ProcessDefinitionImpl processDefinition, ProcessInstanceModificationBuilderImpl modificationBuilder) { var firstInstruction = modificationBuilder.ModificationOperations[0]; if (firstInstruction is AbstractInstantiationCmd) { var instantiationInstruction = (AbstractInstantiationCmd)firstInstruction; var targetElement = instantiationInstruction.GetTargetElement(processDefinition); EnsureUtil.EnsureNotNull(typeof(NotValidException), "Element '" + instantiationInstruction.TargetElementId + "' does not exist in process " + processDefinition.Id, "targetElement", targetElement); if (targetElement is ActivityImpl) { return((ActivityImpl)targetElement); } if (targetElement is TransitionImpl) { return((ActivityImpl)((TransitionImpl)targetElement).Destination); } } return(null); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: @Override public Void execute(final org.camunda.bpm.engine.impl.interceptor.CommandContext commandContext) public override Void execute(CommandContext commandContext) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.Collection<String> processInstanceIds = collectProcessInstanceIds(); ICollection <string> processInstanceIds = collectProcessInstanceIds(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.List<AbstractProcessInstanceModificationCommand> instructions = builder.getInstructions(); IList <AbstractProcessInstanceModificationCommand> instructions = builder.Instructions; ensureNotEmpty(typeof(BadUserRequestException), "Restart instructions cannot be empty", "instructions", instructions); ensureNotEmpty(typeof(BadUserRequestException), "Process instance ids cannot be empty", "Process instance ids", processInstanceIds); ensureNotContainsNull(typeof(BadUserRequestException), "Process instance ids cannot be null", "Process instance ids", processInstanceIds); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.camunda.bpm.engine.impl.persistence.entity.ProcessDefinitionEntity processDefinition = getProcessDefinition(commandContext, builder.getProcessDefinitionId()); ProcessDefinitionEntity processDefinition = getProcessDefinition(commandContext, builder.ProcessDefinitionId); ensureNotNull("Process definition cannot be found", "processDefinition", processDefinition); checkAuthorization(commandContext, processDefinition); if (writeUserOperationLog) { writeUserOperationLog(commandContext, processDefinition, processInstanceIds.Count, false); } //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final String processDefinitionId = builder.getProcessDefinitionId(); string processDefinitionId = builder.ProcessDefinitionId; ThreadStart runnable = () => { foreach (string processInstanceId in processInstanceIds) { HistoricProcessInstance historicProcessInstance = getHistoricProcessInstance(commandContext, processInstanceId); ensureNotNull(typeof(BadUserRequestException), "Historic process instance cannot be found", "historicProcessInstanceId", historicProcessInstance); ensureHistoricProcessInstanceNotActive(historicProcessInstance); ensureSameProcessDefinition(historicProcessInstance, processDefinitionId); ProcessInstantiationBuilderImpl instantiationBuilder = getProcessInstantiationBuilder(commandExecutor, processDefinitionId); applyProperties(instantiationBuilder, processDefinition, historicProcessInstance); ProcessInstanceModificationBuilderImpl modificationBuilder = instantiationBuilder.ModificationBuilder; modificationBuilder.ModificationOperations = instructions; VariableMap variables = collectVariables(commandContext, historicProcessInstance); instantiationBuilder.Variables = variables; instantiationBuilder.execute(builder.SkipCustomListeners, builder.SkipIoMappings); } }; ProcessApplicationContextUtil.doContextSwitch(runnable, processDefinition); return(null); }
public override object Execute(CommandContext commandContext) { IList <AbstractProcessInstanceModificationCommand> instructions = builder.Instructions; ICollection <string> processInstanceIds = CollectProcessInstanceIds(commandContext); EnsureUtil.EnsureNotEmpty(typeof(BadUserRequestException), "Modification instructions cannot be empty", instructions); EnsureUtil.EnsureNotEmpty(typeof(BadUserRequestException), "Process instance ids cannot be empty", "Process instance ids", processInstanceIds); EnsureUtil.EnsureNotContainsNull(typeof(BadUserRequestException), "Process instance ids cannot be null", "Process instance ids", processInstanceIds); ProcessDefinitionEntity processDefinition = GetProcessDefinition(commandContext, builder.ProcessDefinitionId); EnsureUtil.EnsureNotNull(typeof(BadUserRequestException), "Process definition id cannot be null", processDefinition); if (writeUserOperationLog) { WriteUserOperationLog(commandContext, processDefinition, processInstanceIds.Count, false); } bool skipCustomListeners = builder.SkipCustomListeners; bool skipIoMappings = builder.SkipIoMappings; foreach (string processInstanceId in processInstanceIds) { ExecutionEntity processInstance = commandContext.ExecutionManager.FindExecutionById(processInstanceId); EnsureProcessInstanceExist(processInstanceId, processInstance); EnsureSameProcessDefinition(processInstance, processDefinition.Id); ProcessInstanceModificationBuilderImpl builder = new ProcessInstanceModificationBuilderImpl(commandContext, processInstanceId); SetProcessInstanceId(instructions, processInstanceId); builder.ModificationOperations = instructions; builder.Execute(false, skipCustomListeners /*, skipIoMappings*/); } return(null); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: @Override public Void execute(final org.camunda.bpm.engine.impl.interceptor.CommandContext commandContext) public override Void execute(CommandContext commandContext) { IList <AbstractProcessInstanceModificationCommand> instructions = builder.Instructions; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.Collection<String> processInstanceIds = collectProcessInstanceIds(commandContext); ICollection <string> processInstanceIds = collectProcessInstanceIds(commandContext); ensureNotEmpty(typeof(BadUserRequestException), "Modification instructions cannot be empty", instructions); ensureNotEmpty(typeof(BadUserRequestException), "Process instance ids cannot be empty", "Process instance ids", processInstanceIds); ensureNotContainsNull(typeof(BadUserRequestException), "Process instance ids cannot be null", "Process instance ids", processInstanceIds); ProcessDefinitionEntity processDefinition = getProcessDefinition(commandContext, builder.ProcessDefinitionId); ensureNotNull(typeof(BadUserRequestException), "Process definition id cannot be null", processDefinition); if (writeUserOperationLog) { writeUserOperationLog(commandContext, processDefinition, processInstanceIds.Count, false); } bool skipCustomListeners = builder.SkipCustomListeners; bool skipIoMappings = builder.SkipIoMappings; foreach (string processInstanceId in processInstanceIds) { ExecutionEntity processInstance = commandContext.ExecutionManager.findExecutionById(processInstanceId); ensureProcessInstanceExist(processInstanceId, processInstance); ensureSameProcessDefinition(processInstance, processDefinition.Id); ProcessInstanceModificationBuilderImpl builder = createProcessInstanceModificationBuilder(processInstanceId, commandContext); builder.execute(false, skipCustomListeners, skipIoMappings); } return(null); }
public ModifyProcessInstanceCmd(ProcessInstanceModificationBuilderImpl processInstanceModificationBuilder) { Builder = processInstanceModificationBuilder; }
public ModifyProcessInstanceAsyncCmd(ProcessInstanceModificationBuilderImpl processInstanceModificationBuilder) { this.builder = processInstanceModificationBuilder; }
public ModifyProcessInstanceCmd(ProcessInstanceModificationBuilderImpl processInstanceModificationBuilder, bool writeOperationLog) { this.builder = processInstanceModificationBuilder; this.writeOperationLog = writeOperationLog; }
public ModifyProcessInstanceCmd(ProcessInstanceModificationBuilderImpl processInstanceModificationBuilder) : this(processInstanceModificationBuilder, true) { }