EventsAssembly: IMetabaseObjectDescriptor;
EventsAssembly: Prognoz.Platform.Interop.Metabase.IMetabaseObjectDescriptor;
Свойство EventsAssembly определяет объект репозитория, который будет использоваться для обработки событий.
Для использования данного свойства определите класс обработчика событий через свойство IEtlTask.EventsClass.
Обработчиками событий для задачи ETL могут являться объекты Fore и Fore.NET.
Для выполнения примера в репозитории необходимо наличие:
задачи ETL с идентификатором «ETL_TASK»;
объекта Fore/Fore.NET с идентификатором «IETLTASKEXECUTIONEVENTS», в котором описан класс «EventsClass».
Добавьте ссылки на системные сборки: Metabase, Etl.
Sub UserProc;
Var
MB: IMetabase;
Etltask: IEtlTask;
Object: IMetabaseObjectDescriptor;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим задачу ETL
Etltask := MB.ItemById("ETL_TASK").Edit As IEtlTask;
// Получим и установим модуль-обработчик событий
Object := MB.ItemById("IEtlTaskExecutionEvents") As IMetabaseObjectDescriptor;
Etltask.EventsAssembly := Object;
Etltask.EventsClass := "EventsClass";
// Сохраним изменения
(Etltask As IMetabaseObject).Save;
End Sub UserProc;
После выполнения примера указанная задача ETL будет использовать обработчик событий.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Etl;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Etltask: IEtlTask;
Object: IMetabaseObjectDescriptor;
Begin
// Получим репозиторий
MB := Params.Metabase;
// Получим задачу ETL
Etltask := MB.ItemById["ETL_TASK"].Edit() As IEtlTask;
// Получим и установим модуль-обработчик событий
Object := MB.ItemById["IEtlTaskExecutionEvents"] As IMetabaseObjectDescriptor;
Etltask.EventsAssembly := Object;
Etltask.EventsClass := "EventsClass";
// Сохраним изменения
(Etltask As IMetabaseObject).Save();
End Sub;
См. также: