IExecuteForeNetMethodScheduledTask.MethodName

Синтаксис

MethodName: String;

Описание

Свойство MethodName определяет наименование .NET-метода, который необходимо выполнить при запуске задачи.

Комментарии

В качестве значения свойства необходимо указать наименование какого-либо .NET-метода, объявленного с модификаторами Public и Shared. .NET-метод может иметь параметры. Параметры могут иметь один из следующих типов:

Тип IMetabase может иметь только первый параметр метода, при этом для задачи в свойстве FirstParamIsMetabase необходимо установить значение True.

Если указываемый .NET-метод имеет параметры, тип которых отличен от IMetabase, то в коллекции Params объекта, соответствующего задаче, необходимо создать такое же количество параметров. Типы параметров должны соответствовать типам параметров .NET-метода. Значения параметров можно будет указать в свойстве ParamValues.

Пример

Для выполнения примера предполагается наличие в репозитории контейнера запланированных задач с идентификатором "TASK_CONTAINTER" и сборки Fore.NET "NETSCHEDULE". В сборке содержится модуль/форма с описание класса "MyClass". В данном классе описана процедура "Run", имеющая три параметра:

Sub UserProc;
Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    MObj: IMetabaseObject;
    ForeNetExe: IExecuteForeNetMethodScheduledTask;
    Per: IScheduledTaskPeriodOneTimeOnly;
    Prop: IScheduledTaskProperties;
    Params: IMetabaseObjectParams;
    Param: IMetabaseObjectParam;
    ParamValues: IMetabaseObjectParamValues;
Begin
    MB := MetabaseClass.Active;
        CrInfo := MB.CreateCreateInfo;
        CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_TASK_EXECUTENETMETHOD;
        CrInfo.Id := "NETSCHEDULE";
        CrInfo.Name := "Выполнение сборки Fore.NET";
        CrInfo.Parent := MB.ItemById("TASK_CONTAINTER");
    MObj := MB.CreateObject(CrInfo).Edit;
    //Параметры для .NET-метода, через которые будут передаваться значения
    Params := MObj.Params;
    Param := Params.Add;
    Param.Id := "IterationCount"; Param.Name := "Количество итераций";
    Param.DataType := DbDataType.Integer;
    Param := Params.Add;
    Param.Id := "Error"; Param.Name := "Погрешность";
    Param.DataType := DbDataType.Float;
    //Запускаемый .NET-метод
    ForeNetExe := MObj As IExecuteForeNetMethodScheduledTask;
    ForeNetExe.Assembly := MB.ItemById("NETSCHEDULE").Bind As IForeNETAssembly;
    ForeNetExe.TypeName := "NETSCHEDULE.MyClass";
    ForeNetExe.MethodName := "Run";
    ForeNetExe.FirstParamIsMetabase := True;
    //Параметры выполнения задачи
    Prop := ForeNetExe.Properties;
    Per := Prop.CreatePeriod(ScheduledTaskPeriodType.OneTimeOnly) As IScheduledTaskPeriodOneTimeOnly;
    Per.StartMode := TaskPeriodOneTimeStartMode.OnLogon;
    Prop.Period := Per;
    //Значения параметров для .NET-метода
    ParamValues := Prop.ParamValues;
    ParamValues.FindById("IterationCount").Value := 10000;
    ParamValues.FindById("Error").Value := 0.0000001;
    Prop.ParamValues := ParamValues;
    MObj.Save;
End Sub UserProc;

После выполнения примера в контейнере запланированных задач будет создана новая задача выполнения сборки Fore.NET. Сборка будет запущена один раз при подключении к репозиторию. При запуске будет выполнен метод «Run» с передачей в него указанных значений параметров.

См. также:

IExecuteForeNetMethodScheduledTask