IScheduledTaskPeriodOneTimeOnly.StartMode

Синтаксис

StartMode: TaskPeriodOneTimeStartMode;

Описание

Свойство StartMode определяет, когда будет производиться одноразовый запуск задачи.

Пример

Для выполнения примера предполагается наличие в репозитории контейнера запланированных задач с идентификатором «TASK_CONTAINTER» и модуля с идентификатором «Module_1». В модуле имеется процедура «Main».

Sub UserProc;
Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    MObj: IMetabaseObject;
    Exe: IExecuteSubScheduledTask;
    Period: IScheduledTaskPeriodOneTimeOnly;
    Prop: IScheduledTaskProperties;
Begin
    MB := MetabaseClass.Active;
    CrInfo := MB.CreateCreateInfo;
    CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_TASK_EXECUTESUB;
    CrInfo.Id := 
"MODULE_EXECUTOR";
    CrInfo.Name := 
"Выполнение модуля";
    CrInfo.Parent := MB.ItemById(
"TASK_CONTAINTER");
    MObj := MB.CreateObject(CrInfo).Edit;
    Exe := MObj 
As IExecuteSubScheduledTask;
    Exe.Assembly := (MB.ItemById(
"Module_1").Bind As IModule).Assembly;
    Exe.SubName := 
"Main";
    Prop := Exe.Properties;
    Period := Prop.CreatePeriod(ScheduledTaskPeriodType.OneTimeOnly) 
As IScheduledTaskPeriodOneTimeOnly;
    Period.StartMode := TaskPeriodOneTimeStartMode.OnLogon;
    Prop.Period := Period;
    MObj.Save;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Etl;
Imports Prognoz.Platform.Interop.KeFore;
Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    MObj: IMetabaseObject;
    Exe: IExecuteSubScheduledTask;
    Period: IScheduledTaskPeriodOneTimeOnly;
    Prop: IScheduledTaskProperties;
Begin
    MB := Params.Metabase;
    CrInfo := MB.CreateCreateInfo();
    CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_TASK_EXECUTESUB 
As Integer;
    CrInfo.Id := 
"MODULE_EXECUTOR";
    CrInfo.Name := 
"Выполнение модуля";
    CrInfo.Parent := MB.ItemById[
"TASK_CONTAINTER"];
    MObj := MB.CreateObject(CrInfo).Edit();
    Exe := MObj 
As IExecuteSubScheduledTask;
    Exe.Assembly := (MB.ItemById[
"Module_1"].Bind() As IModule).Assembly;
    Exe.SubName := 
"Main";
    Prop := Exe.Properties;
    Period := Prop.CreatePeriod(ScheduledTaskPeriodType.stptOneTimeOnly) 
As IScheduledTaskPeriodOneTimeOnly;
    Period.StartMode := TaskPeriodOneTimeStartMode.tpotsmOnLogon;
    Prop.Period := Period;
    MObj.Save();
End Sub;

После выполнения примера в контейнере запланированных задач будет создана новая задача выполнения модуля. Модуль будет запущен один раз при подключении к репозиторию.

См. также:

IScheduledTaskPeriodOneTimeOnly