IScheduledTask.State

Синтаксис Fore

State: ScheduledTaskState;

Синтаксис Fore.NET

State: Prognoz.Platform.Interop.KeFore.ScheduledTaskState;

Описание

Свойство State возвращает состояние задачи в текущий момент времени.

Комментарии

Для получения истории выполнения задачи используйте свойство IScheduledTask.GetResults.

Пример Fore

Для выполнения примера в репозитории предполагается наличие контейнера запланированных задач с идентификатором 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.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;

См. также:

IScheduledTask