/// <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()); * }*/ }
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()); } } }
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); } } }