ForeModule: IModule;
Свойство ForeModule определяет модуль, в котором содержится класс, реализующий приемник пользователя.
Для выполнения примера предполагается наличие в репозитории задачи ETL с идентификатором "Etl" и модуля "ModuleConsumer", содержащего класс "MyConsumer" реализующий приемник пользователя. Данный приемник рассчитан на работу с массивом, содержащим символьные и вещественные значения.
Sub Main;
Var
MB: IMetabase;
MObj: IMetabaseObject;
EtlTask: IEtlTask;
EtlConsumer: IEtlPlainDataConsumer;
UserConsumer: IDtUserConsumer;
WxConsumer: IWxRectangle;
WxETLConsumer: IWxETLObject;
Fields: IDtFieldDefinitions;
Field: IDtFieldDefinition;
Begin
MB := MetabaseClass.Active;
//Поиск задачи ETL. Объект репозитория с идентификатором "ETL"
MObj := MB.ItemById("Etl").Edit;
EtlTask := MObj As IEtlTask;
//Начало создания приемника
//Создание объекта "Приемник пользователя"
EtlConsumer := EtlTask.Create(EtlObjectType.PlainDataUserConsumer) As IEtlPlainDataConsumer;
EtlConsumer := EtlConsumer.Edit;
EtlConsumer.Id := "User_Consumer";
EtlConsumer.Name := "Приемник пользователя";
EtlConsumer.Description := "Приемник пользователя";
//Настройка приемника данных
UserConsumer := EtlConsumer.Consumer As IDtUserConsumer;
UserConsumer.ForeModule := MB.ItemById("ModuleConsumer").Bind As IModule;
UserConsumer.ForeClass := "MyConsumer";
Fields := UserConsumer.Fields;
Field := Fields.Add;
Field.DataType := DbDataType.String;
Field.Name := "Код";
Field := Fields.Add;
Field.DataType := DbDataType.Float;
Field.Name := "Значение";
EtlConsumer.FillDefault;
//Сохраняем приемник
EtlConsumer.Save;
//Конец создания приемника
//Начало создания визуального объекта
WxConsumer := EtlTask.Workspace.CreateRectangle;
WxETLConsumer := New WxETLObject.Create;
WxETLConsumer.ETLObject := EtlConsumer;
WxConsumer.Style.TextPosition := WxTextPosition.Bottom;
WxConsumer.Style.PictureMarginTop := -10;
WxConsumer.PinPosition := New GxPointF.Create(50, 50);
WxConsumer.Extension := WxETLConsumer As IWxShapeExtension;
//Конец создания визуального объекта
//Сохранение задачи Etl
MObj.Save;
End Sub Main;
После выполнения примера в задаче ETL будет создан объект «Приемник пользователя». Данный приемник будет экспортировать данные в соответствии с алгоритмом пользователя, реализованным в переопределенном методе Put в классе "MyConsumer".
См. также: