コード例 #1
0
        public virtual void complete(CompleteExternalTaskDto dto)
        {
            ExternalTaskService externalTaskService = engine.ExternalTaskService;

            VariableMap variables      = VariableValueDto.toMap(dto.Variables, engine, objectMapper);
            VariableMap localVariables = VariableValueDto.toMap(dto.LocalVariables, engine, objectMapper);

            try
            {
                externalTaskService.complete(externalTaskId, dto.WorkerId, variables, localVariables);
            }
            catch (NotFoundException e)
            {
                throw new RestException(Status.NOT_FOUND, e, "External task with id " + externalTaskId + " does not exist");
            }
            catch (BadUserRequestException e)
            {
                throw new RestException(Status.BAD_REQUEST, e, e.Message);
            }
        }
コード例 #2
0
        public virtual void signalExecution(ExecutionTriggerDto triggerDto)
        {
            RuntimeService runtimeService = engine.RuntimeService;

            try
            {
                VariableMap variables = VariableValueDto.toMap(triggerDto.Variables, engine, objectMapper);
                runtimeService.signal(executionId, variables);
            }
            catch (RestException e)
            {
                string errorMessage = string.Format("Cannot signal execution {0}: {1}", executionId, e.Message);
                throw new InvalidRequestException(e.Status, e, errorMessage);
            }
            catch (AuthorizationException e)
            {
                throw e;
            }
            catch (ProcessEngineException e)
            {
                throw new RestException(Status.INTERNAL_SERVER_ERROR, e, "Cannot signal execution " + executionId + ": " + e.Message);
            }
        }
コード例 #3
0
        public virtual void triggerEvent(ExecutionTriggerDto triggerDto)
        {
            RuntimeService runtimeService = engine.RuntimeService;


            try
            {
                VariableMap variables = VariableValueDto.toMap(triggerDto.Variables, engine, objectMapper);
                runtimeService.messageEventReceived(messageName, executionId, variables);
            }
            catch (AuthorizationException e)
            {
                throw e;
            }
            catch (ProcessEngineException e)
            {
                throw new RestException(Status.INTERNAL_SERVER_ERROR, e, string.Format("Cannot trigger message {0} for execution {1}: {2}", messageName, executionId, e.Message));
            }
            catch (RestException e)
            {
                string errorMessage = string.Format("Cannot trigger message {0} for execution {1}: {2}", messageName, executionId, e.Message);
                throw new InvalidRequestException(e.Status, e, errorMessage);
            }
        }
コード例 #4
0
        public virtual void handleBpmnError(ExternalTaskBpmnError dto)
        {
            ExternalTaskService externalTaskService = engine.ExternalTaskService;

            try
            {
                externalTaskService.handleBpmnError(externalTaskId, dto.WorkerId, dto.ErrorCode, dto.ErrorMessage, VariableValueDto.toMap(dto.Variables, engine, objectMapper));
            }
            catch (NotFoundException e)
            {
                throw new RestException(Status.NOT_FOUND, e, "External task with id " + externalTaskId + " does not exist");
            }
            catch (BadUserRequestException e)
            {
                throw new RestException(Status.BAD_REQUEST, e, e.Message);
            }
        }