State: ScheduledTaskState;
State: Prognoz.Platform.Interop.KeFore.ScheduledTaskState;
Свойство State возвращает состояние задачи в текущий момент времени.
Для получения истории выполнения задачи используйте свойство IScheduledTask.GetResults.
Для выполнения примера в репозитории предполагается наличие контейнера запланированных задач с идентификатором SCHEDULEDTASKSCONTAINER.
Добавьте ссылки на системные сборки: Fore, Metabase.
Sub UserProc;
Var
MB: IMetabase;
Cont: IScheduledTasksContainer;
Tasks: IMetabaseObjectDescriptors;
i: integer;
Task: IScheduledTask;
Begin
// Получаем текущий репозиторий
MB := MetabaseClass.Active;
// Получаем контейнер запланированных задач
Cont := MB.ItemById("SCHEDULEDTASKSCONTAINER").Bind As IScheduledTasksContainer;
// Выводим состояние всех задач
Tasks := Cont.Tasks;
For i := 0 To Tasks.Count - 1 Do
Task := Tasks.Item(i).Bind As IScheduledTask;
Debug.Write("Задача: " + (Task As IMetabaseObjectDescriptor).Name + " Состояние: ");
Select Case (Task.State As Integer)
Case 0: Debug.WriteLine("Неактивна");
Case 1: Debug.WriteLine("Готова");
Case 2: Debug.WriteLine("Выполняется");
Case 3: Debug.WriteLine("Завершена");
Case 4: Debug.WriteLine("Ошибка");
End Select;
End For;
End Sub UserProc;
После выполнения примера в консоль среды разработки будет выведен список задач, а также состояние каждой задачи.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.KeFore;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Cont: IScheduledTasksContainer;
Tasks: IMetabaseObjectDescriptors;
i: integer;
Task: IScheduledTask;
Begin
// Получаем текущий репозиторий
MB := Params.Metabase;
// Получаем контейнер запланированных задач
Cont := MB.ItemById["SCHEDULEDTASKSCONTAINER"].Bind() As IScheduledTasksContainer;
// Выводим состояние всех задач
Tasks := Cont.Tasks;
For i := 0 To Tasks.Count - 1 Do
Task := Tasks.Item[i].Bind() As IScheduledTask;
System.Diagnostics.Debug.Write("Задача: " + (Task As IMetabaseObjectDescriptor).Name + " Состояние: ");
Select Case (Task.State As Integer)
Case 0: System.Diagnostics.Debug.WriteLine("Неактивна");
Case 1: System.Diagnostics.Debug.WriteLine("Готова");
Case 2: System.Diagnostics.Debug.WriteLine("Выполняется");
Case 3: System.Diagnostics.Debug.WriteLine("Завершена");
Case 4: System.Diagnostics.Debug.WriteLine("Ошибка");
End Select;
End For;
End Sub;
См. также: