Consider an example of creating a task that executes the module.
Executing the example requires that the repository contains a scheduled tasks container with the NewSTCont identifier and a module with the Module_1 identifier. The module contains the Main procedure.
Sub Main;
Var
MB: IMetabase;
CrInfo: IMetabaseObjectCreateInfo;
MObj: IMetabaseObject;
Exe: IExecuteSubScheduledTask;
Period: IScheduledTaskPeriodWeekly;
Prop: IScheduledTaskProperties;
Begin
MB := MetabaseClass.Active;
CrInfo := MB.CreateCreateInfo;
CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_TASK_EXECUTESUB;
CrInfo.Id := "Task_module_execute";
CrInfo.Name := "Module execution";
CrInfo.Parent := MB.ItemById("NewSTCont");
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.Weekly) As IScheduledTaskPeriodWeekly;
Period.DaysOfWeek(CalendarDayOfWeek.Monday) := True;
Period.DaysOfWeek(CalendarDayOfWeek.Wednesday) := True;
Period.DaysOfWeek(CalendarDayOfWeek.Friday) := True;
Period.StartTime := DateTime.ComposeTimeOfDay(12, 0, 0, 0);
Prop.Period := Period;
MObj.Save;
End Sub Main;
After executing the example a new task of module execution is created in the scheduled tasks container. The module is launched on Mondays, Wednesdays and Fridays at 12:00.
For more information on work with different tasks refer to description of the following interfaces:
ICalculateCubeScheduledTask is a task of the calculation of the calculated cube.
ICalculateReportScheduledTask is a task of the calculation of the regular report.
IExecuteSubScheduledTask is a task of module executing.
IExecuteForeNetMethodScheduledTask is a task of the Fore.NET assembly executing.
IExecuteEtlScheduledTask is a task of the Etl task executing.
ICalculateModelScheduledTask is a task of the modeling task calculation.
See also: