コード例 #1
0
        public virtual object execute(CommandContext commandContext)
        {
            TaskManager taskManager = commandContext.TaskManager;
            TaskEntity  task        = taskManager.findTaskById(taskId);

            ensureNotNull("Task '" + taskId + "' not found", "task", task);

            foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers)
            {
                checker.checkReadTaskVariable(task);
            }
            ensureNotNull("Task form definition for '" + taskId + "' not found", "task.getTaskDefinition()", task.TaskDefinition);

            TaskFormHandler taskFormHandler = task.TaskDefinition.TaskFormHandler;

            if (taskFormHandler == null)
            {
                return(null);
            }

            FormEngine formEngine = Context.ProcessEngineConfiguration.FormEngines[formEngineName];

            ensureNotNull("No formEngine '" + formEngineName + "' defined process engine configuration", "formEngine", formEngine);

            TaskFormData taskForm = taskFormHandler.createTaskForm(task);

            return(formEngine.renderTaskForm(taskForm));
        }
コード例 #2
0
        public virtual TaskFormData execute(CommandContext commandContext)
        {
            TaskManager taskManager = commandContext.TaskManager;
            TaskEntity  task        = taskManager.findTaskById(taskId);

            ensureNotNull("No task found for taskId '" + taskId + "'", "task", task);

            foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers)
            {
                checker.checkReadTaskVariable(task);
            }

            if (task.TaskDefinition != null)
            {
                TaskFormHandler taskFormHandler = task.TaskDefinition.TaskFormHandler;
                ensureNotNull("No taskFormHandler specified for task '" + taskId + "'", "taskFormHandler", taskFormHandler);

                return(taskFormHandler.createTaskForm(task));
            }
            else
            {
                // Standalone task, no TaskFormData available
                return(null);
            }
        }
コード例 #3
0
 public CreateTaskFormInvocation(TaskFormHandler taskFormHandler, TaskEntity task) : base(null, null)
 {
     this.taskFormHandler = taskFormHandler;
     this.task            = task;
 }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
 public TaskDefinition(TaskFormHandler taskFormHandler)
 {
     this.taskFormHandler = taskFormHandler;
 }
コード例 #6
0
 public DelegateTaskFormHandler(TaskFormHandler formHandler, DeploymentEntity deployment) : base(formHandler, deployment.Id)
 {
 }