Validation: IMetabaseObjectDescriptor;
Validation: Prognoz.Platform.Interop.Metabase.IMetabaseObjectDescriptor;
Свойство Validation определяет правило валидации, при выполнении которого будет выполняться задача.
Свойство актуально, если IScheduledTask.CreateChecker = ScheduledTaskCheckerType.Validation.
Для выполнения примера предполагается наличие:
контейнера запланированных задач с идентификатором «TASK_CONTAINER», содержащего задачу;
базы данных временных рядов с идентификатором «RUBRICATOR», содержащей правило валидации с идентификатором «VALIDATION».
Добавьте ссылки на системные сборки Metabase, Fore.
Sub UserProc;
Var
MB: IMetabase;
cont: IScheduledTasksContainer;
task: IScheduledTask;
TChecker: IScheduledTaskChecker;
ValidationChecker: IScheduledTaskValidationChecker;
Begin
MB := metabaseClass.Active;
cont := MB.ItemById("TASK_CONTAINER").Edit As IScheduledTasksContainer;
task := cont.Tasks.Item(0).Edit As IScheduledTask;
TChecker := task.CreateChecker(ScheduledTaskCheckerType.Validation);
ValidationChecker := TChecker As IScheduledTaskValidationChecker;
Debug.WriteLine("Установлено условие выполнения задачи: ");
Select Case (TChecker.Type As Integer)
Case 0: Debug.WriteLine(" - Выполнять задачу, если функция выполнена с результатом");
Case 1: Debug.WriteLine(" - Выполнять задачу, если правило валидации выполнено с результатом");
End Select;
ValidationChecker.Validation := MB.ItemByIdNamespace("VALIDATION", MB.ItemById("RUBRICATOR").Key).Bind;
ValidationChecker.Condition := STValidationCheckerConditionType.Equal;
ValidationChecker.ExceptionCount := 0;
task.TaskChecker := TChecker;
(task As IMetabaseObject).Save;
End Sub UserProc;
В результате выполнения примера будут установлены настройки условий выполнения задачи:
установлено условие выполнения задачи «Выполнять задачу, если правило валидации выполнено с результатом»;
выбрано правило валидации;
установлен результат выполнения правила валидации.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо системной сборки Fore подключите системную сборку KeFore.
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.KeFore;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
cont: IScheduledTasksContainer;
task: IScheduledTask;
TChecker: IScheduledTaskChecker;
ValidationChecker: IScheduledTaskValidationChecker;
Begin
MB := Params.Metabase;
cont := MB.ItemById["TASK_CONTAINER"].Edit() As IScheduledTasksContainer;
task := cont.Tasks.Item[0].Edit() As IScheduledTask;
TChecker := task.CreateChecker(ScheduledTaskCheckerType.sctValidation);
ValidationChecker := TChecker As IScheduledTaskValidationChecker;
System.Diagnostics.Debug.WriteLine("Установлено условие выполнения задачи: ");
Select Case (TChecker.Type As Integer)
Case 0: System.Diagnostics.Debug.WriteLine(" - Выполнять задачу, если функция выполнена с результатом");
Case 1: System.Diagnostics.Debug.WriteLine(" - Выполнять задачу, если правило валидации выполнено с результатом");
End Select;
ValidationChecker.Validation := MB.ItemByIdNamespace["VALIDATION", MB.ItemById["RUBRICATOR"].Key].Bind();
ValidationChecker.Condition := STValidationCheckerConditionType.scctEqual;
ValidationChecker.ExceptionCount := 0;
task.TaskChecker := TChecker;
(task As IMetabaseObject).Save();
End Sub;
См. также: