UserData: IXmlDomElement;
Свойство UserData определяет дополнительные настройки в формате XML для пользовательского приёмника данных.
Дополнительные настройки определяются в интерфейсе IDtRecordsetUserData класса, реализующего данный интерфейс и интерфейс IDtRecordsetConsumer.
Особенности работы с XML-файлами представлены на странице «Пример работы с XML-файлами».
Для выполнения примера в репозитории необходимо наличие:
задачи ETL с идентификатором «ETL»;
модуля с идентификатором «MYCONSUMER». Модуль содержит класс, реализующий интерфейсы IDtRecordsetConsumer, IDtRecordsetUserData. Пример использования интерфейса IDtRecordsetUserData представлен в описании IDtRecordsetUserData.UserData.
Добавьте ссылки на системные сборки: Andy, Dal, Drawing, Dt, Etl, Metabase, Xml.
Sub UserProc;
Var
MB: IMetabase;
EtlTask: IEtlTask;
EtlConsumer: IEtlPlainDataConsumer;
UserConsumer: IDtUserConsumer;
WxConsumer: IWxRectangle;
WxETLConsumer: IWxETLObject;
Fields: IDtFieldDefinitions;
Field: IDtFieldDefinition;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим задачу ETL
EtlTask := MB.ItemById("ETL").Edit As IEtlTask;
//Создадим объект «Приёмник пользователя» в задаче ETL
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("MYCONSUMER").Bind;
UserConsumer.ForeClass := "MyConsumer";
Debug.WriteLine("Пользовательские данные в формате XML" + UserConsumer.UserData.xml);
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;
// Создадим визуальное представление объекта в задаче ETL
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;
//Сохраненим изменения
(EtlTask As IMEtabaseObject).Save;
End Sub UserProc;
После выполнения примера в указанной задаче ETL будет создан пользовательский приёмник данных на основе указанного класса. В окно консоли будут выведены пользовательские данные в формате XML.
См. также: