/// <summary> /// Construct representation of locked ExternalTask from corresponding entity. /// During mapping variables will be collected,during collection variables will not be deserialized /// and scope will not be set to local. /// </summary> /// <seealso cref= /// <seealso /// cref="AbstractVariableScope#collectVariables(VariableMapImpl, Collection, boolean, boolean)" /> /// </seealso> /// <param name="externalTaskEntity"> - source persistent entity to use for fields </param> /// <param name="variablesToFetch"> /// - list of variable names to fetch, if null then all variables will be fetched /// </param> /// <returns> /// object with all fields copied from the ExternalTaskEntity, error details fetched from the /// database and variables attached /// </returns> public static LockedExternalTaskImpl FromEntity(ExternalTaskEntity externalTaskEntity, IList <string> variablesToFetch, bool deserializeVariables) { var result = new LockedExternalTaskImpl(); result.id = externalTaskEntity.Id; result.topicName = externalTaskEntity.TopicName; result.workerId = externalTaskEntity.WorkerId; result.lockExpirationTime = externalTaskEntity.LockExpirationTime; result.retries = externalTaskEntity.Retries; result.errorMessage = externalTaskEntity.ErrorMessage; result.errorDetails = externalTaskEntity.ErrorDetails; result.processInstanceId = externalTaskEntity.ProcessInstanceId; result.executionId = externalTaskEntity.ExecutionId; result.activityId = externalTaskEntity.ActivityId; result.activityInstanceId = externalTaskEntity.ActivityInstanceId; result.processDefinitionId = externalTaskEntity.ProcessDefinitionId; result.processDefinitionKey = externalTaskEntity.ProcessDefinitionKey; result.tenantId = externalTaskEntity.TenantId; result.priority = externalTaskEntity.Priority; ExecutionEntity execution = externalTaskEntity.Execution; result.variables = new VariableMapImpl(); execution.CollectVariables(result.variables, variablesToFetch, false, deserializeVariables); return(result); }
public override void Execute(IActivityExecution execution) { var executionEntity = (ExecutionEntity)execution; var provider = context.Impl.Context.ProcessEngineConfiguration.ExternalTaskPriorityProvider; var priority = provider.DeterminePriority(executionEntity, this, null); ExternalTaskEntity.CreateAndInsert(executionEntity, TopicName, priority); }
public virtual UserOperationLogContextEntryBuilder inContextOf(ExternalTaskEntity task, ExecutionEntity execution, ProcessDefinitionEntity definition) { if (execution != null) { inContextOf(execution); } else if (definition != null) { inContextOf(definition); } entry_Renamed.ExternalTaskId = task.Id; return(this); }
public virtual string Execute(CommandContext commandContext) { EnsureUtil.EnsureNotNull("externalTaskId", _externalTaskId); ExternalTaskEntity externalTask = commandContext.ExternalTaskManager.FindExternalTaskById(_externalTaskId); EnsureUtil.EnsureNotNull("No external ITask found with id " + _externalTaskId, "externalTask", externalTask); foreach (var checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { checker.CheckReadProcessInstance(externalTask.ProcessInstanceId); } return(externalTask.ErrorDetails); }
public virtual object Execute(CommandContext commandContext) { EnsureUtil.EnsureNotNull("externalTaskId", ExternalTaskId); ValidateInput(); ExternalTaskEntity externalTask = commandContext.ExternalTaskManager.FindExternalTaskById(ExternalTaskId); EnsureUtil.EnsureNotNull(typeof(NotFoundException), "Cannot find external ITask with id " + ExternalTaskId, "externalTask", externalTask); foreach (ICommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { checker.CheckUpdateProcessInstanceById(externalTask.ProcessInstanceId); } Execute(externalTask); return(null); }
public virtual Void execute(CommandContext commandContext) { EnsureUtil.ensureNotNull("externalTaskId", externalTaskId); validateInput(); ExternalTaskEntity externalTask = commandContext.ExternalTaskManager.findExternalTaskById(externalTaskId); ensureNotNull(typeof(NotFoundException), "Cannot find external task with id " + externalTaskId, "externalTask", externalTask); foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { checker.checkUpdateProcessInstanceById(externalTask.ProcessInstanceId); } writeUserOperationLog(commandContext, externalTask, UserOperationLogOperationType, getUserOperationLogPropertyChanges(externalTask)); execute(externalTask); return(null); }
public override object Execute(CommandContext commandContext) { ValidateInput(); ExternalTaskEntity externalTask = commandContext.ExternalTaskManager.FindExternalTaskById(ExternalTaskId); EnsureUtil.EnsureNotNull(typeof(NotFoundException), "Cannot find external ITask with id " + ExternalTaskId, "externalTask", externalTask); if (!WorkerId.Equals(externalTask.WorkerId)) { throw new BadUserRequestException(ErrorMessageOnWrongWorkerAccess + "'. It is locked by worker '" + externalTask.WorkerId + "'."); } foreach (ICommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers) { checker.CheckUpdateProcessInstanceById(externalTask.ProcessInstanceId); } Execute(externalTask); return(null); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testExternalTaskStacktraceBinary() public virtual void testExternalTaskStacktraceBinary() { // given testRule.deploy("org/camunda/bpm/engine/test/api/externaltask/oneExternalTaskProcess.bpmn20.xml"); runtimeService.startProcessInstanceByKey("oneExternalTaskProcess"); IList <LockedExternalTask> tasks = externalTaskService.fetchAndLock(5, WORKER_ID).topic(TOPIC_NAME, LOCK_TIME).execute(); LockedExternalTask task = tasks[0]; // submitting a failure (after a simulated processing time of three seconds) ClockUtil.CurrentTime = nowPlus(3000L); string errorMessage; string exceptionStackTrace; try { throw new RuntimeSqlException("test cause"); } catch (Exception e) { exceptionStackTrace = ExceptionUtils.getStackTrace(e); errorMessage = e.Message; } assertNotNull(exceptionStackTrace); externalTaskService.handleFailure(task.Id, WORKER_ID, errorMessage, exceptionStackTrace, 5, 3000L); ExternalTaskEntity externalTask = (ExternalTaskEntity)externalTaskService.createExternalTaskQuery().singleResult(); ByteArrayEntity byteArrayEntity = configuration.CommandExecutorTxRequired.execute(new GetByteArrayCommand(externalTask.ErrorDetailsByteArrayId)); // then checkBinary(byteArrayEntity); }
protected internal override object Execute(ExternalTaskEntity externalTask) { externalTask.Unlock(); return(null); }
protected internal override object Execute(ExternalTaskEntity externalTask) { externalTask.Failed(ErrorMessage, ErrorDetails, Retries, RetryDuration); return(null); }
public virtual void consume(ExternalTaskEntity externalTask) { externalTasks_Renamed.remove(externalTask); }
protected internal override object Execute(ExternalTaskEntity externalTask) { externalTask.BpmnError(ErrorCode); return(null); }
public virtual void Consume(ExternalTaskEntity externalTask) { ExternalTasksRenamed.Remove(externalTask); }
public virtual void execute(ExternalTaskEntity externalTask) { externalTask.bpmnError(errorCode, errorMessage, variables); }
protected internal override object Execute(ExternalTaskEntity externalTask) { externalTask.Priority = int.Parse(Priority.ToString()); return(null); }
public virtual void execute(ExternalTaskEntity externalTask) { externalTask.complete(variables, localVariables); }
protected internal override object Execute(ExternalTaskEntity externalTask) { externalTask.RetriesAndManageIncidents = Retries; return(null); }
/// <summary> /// Executes the specific external task commands, which belongs to the current sub class. /// </summary> /// <param name="externalTask"> the external task which is used for the command execution </param> protected internal abstract void execute(ExternalTaskEntity externalTask);
protected internal virtual void writeUserOperationLog(CommandContext commandContext, ExternalTaskEntity externalTask, string operationType, IList <PropertyChange> propertyChanges) { if (!string.ReferenceEquals(operationType, null)) { commandContext.OperationLogManager.logExternalTaskOperation(operationType, externalTask, propertyChanges == null || propertyChanges.Count == 0 ? Collections.singletonList(PropertyChange.EMPTY_CHANGE) : propertyChanges); } }
protected internal override IList <PropertyChange> getUserOperationLogPropertyChanges(ExternalTaskEntity externalTask) { return(Collections.singletonList(new PropertyChange("priority", externalTask.Priority, priority))); }
protected internal override void execute(ExternalTaskEntity externalTask) { externalTask.Priority = priority; }
protected internal virtual HistoricExternalTaskLogEntity InitHistoricExternalTaskLog(ExternalTaskEntity entity, IExternalTaskState state) { HistoricExternalTaskLogEntity @event = new HistoricExternalTaskLogEntity(); @event.TimeStamp = ClockUtil.CurrentTime; @event.ExternalTaskId = entity.Id; @event.TopicName = entity.TopicName; @event.WorkerId = entity.WorkerId; @event.Priority = entity.Priority; @event.Retries = entity.Retries; @event.ActivityId = entity.ActivityId; @event.ActivityInstanceId = entity.ActivityInstanceId; @event.ExecutionId = entity.ExecutionId; @event.ProcessInstanceId = entity.ProcessInstanceId; @event.ProcessDefinitionId = entity.ProcessDefinitionId; @event.ProcessDefinitionKey = entity.ProcessDefinitionKey; @event.TenantId = entity.TenantId; @event.State = state.StateCode; return(@event); }
protected internal virtual IList <PropertyChange> getUserOperationLogPropertyChanges(ExternalTaskEntity externalTask) { return(Collections.emptyList()); }
/// <summary> /// Executes the specific external ITask commands, which belongs to the current sub class. /// </summary> /// <param name="externalTask"> the external ITask which is used for the command execution </param> protected internal abstract object Execute(ExternalTaskEntity externalTask);
public MigratingExternalTaskInstance(ExternalTaskEntity externalTask, MigratingActivityInstance migratingActivityInstance) { this.ExternalTask = externalTask; this.MigratingActivityInstance = migratingActivityInstance; }
protected internal override void execute(ExternalTaskEntity externalTask) { externalTask.RetriesAndManageIncidents = retries; }
protected internal override IList <PropertyChange> getUserOperationLogPropertyChanges(ExternalTaskEntity externalTask) { if (writeUserOperationLog) { return(Collections.singletonList(new PropertyChange("retries", externalTask.Retries, retries))); } return(base.getUserOperationLogPropertyChanges(externalTask)); }
protected internal override object Execute(ExternalTaskEntity externalTask) { externalTask.Complete(Variables); return(null); }