Esempio n. 1
0
        /// <summary>
        /// Se creo para separar el codigo del ListenerAfterExecuteDependentTask
        /// de esta manera, se puede llamar solamente a esta porcion de codigo, despues de un warning
        /// sin necesidad de hacer todo otra vez; nos evitamos volver a revisar los errores y los warnings
        /// ya que si alguna vez se mostro el warning, se hizo en forma modal y se continuo en el worflow, por lo
        /// cual no se pudieron generar errores nuevos.
        /// </summary>
        /// <param name="task"></param>
        /// <param name="sender"></param>
        private void ejecutar(ITask task, object sender)
        {
            ITask mainTask = (ITask)_process.MainTask.TaskInstance;

            mainTask.ListenerAfterExecuteDependentTask(sender);
            foreach (TaskDynamicInfo secondaryTaskInfo in _process.SecondaryTasks)
            {
                ITask secondaryTaskInstance = (ITask)secondaryTaskInfo.TaskInstance;
                secondaryTaskInstance.ListenerAfterExecuteDependentTask(sender);
            }
            _executedTask.Add(sender);
            //Cristian Tarea 0000051 20110411
            Sistema.AddValueFilter(Process.ProcessName, Process.MainTask.KeyTask, "FechaDesde", "222");
            //Fin Cristian

            bool estado = this.Step();

            if (estado)
            {
                ITask nextTask = this.NextTask();
                if (nextTask != null)
                {
                    this._state = ProcessState.State.NextState;

                    if (OnNextTask != null)
                    {
                        OnNextTask(nextTask.GetTaskName());
                    }
                }
                else
                {
                    if (OnEndProcess != null)
                    {
                        OnEndProcess(task.GetTaskName());
                    }
                }
            }
            else
            {
                if (OnErrorFlushProcess != null)
                {
                    OnErrorFlushProcess(task.GetTaskName(), _errorMessage, _flushErrors);
                }
            }


            /*ITask nextTask = this.NextTask();
             * if(nextTask!= null)
             * {
             *      this._state = ProcessState.State.NextState;
             *      if(OnNextTask != null)
             *              OnNextTask(nextTask.GetTaskName());
             * }
             * else
             * {
             *      if(OnEndProcess != null)
             *              OnEndProcess(task.GetTaskName());
             * }*/
        }
Esempio n. 2
0
        private void ListenerAfterPreviousDependentTask(object sender, EventArgs e)
        {
            ArrayList tasks = this.SortedTasks(TaskStaticInfo.SortOrder.OrderBR);

            foreach (TaskDynamicInfo task in tasks)
            {
                ITask taskDependent = (ITask)task.TaskInstance;
                taskDependent.ListenerAfterPreviousDependentTask(sender);
            }
            ITask previousTask = this.PreviousTask();

            if (previousTask != null)
            {
                this._state = ProcessState.State.BackState;
                if (OnPreviousTask != null)
                {
                    OnPreviousTask(previousTask.GetTaskName());
                }
            }
        }
Esempio n. 3
0
        public void StartProcess()
        {
            /*Primero Verificamos si Hay Validacioes q hacer antes de Iniciar el proceso*/
            bool IsValid = true;

            if (this._process.CheckValidOnStart)
            {
                ArrayList sortedTask = SortTasks(TaskStaticInfo.SortOrder.OrderBR);
                foreach (TaskDynamicInfo taskInfo in sortedTask)
                {
                    ITask _taskInstance = (ITask)taskInfo.TaskInstance;
                    IsValid = IsValid && _taskInstance.IsValidForStartProcess();
                }
            }
            if (IsValid)
            {
                _actualTaskIndex = -1;
                ITask firstTask = (ITask)this.NextTask();
                this._state = ProcessState.State.NextState;
                if (OnNextTask != null)
                {
                    OnNextTask(firstTask.GetTaskName());
                }
            }
            else
            {
                ArrayList          sortedTask = SortTasks(TaskStaticInfo.SortOrder.OrderBR);
                ItemsDatasetErrors errors     = new ItemsDatasetErrors();
                foreach (TaskDynamicInfo taskInfo in sortedTask)
                {
                    ITask _taskInstance = (ITask)taskInfo.TaskInstance;
                    errors.AddAll(_taskInstance.GetErrors());
                }
                if (OnProcessErrorsOnStart != null)
                {
                    OnProcessErrorsOnStart(errors);
                }
            }
        }