IDtMetabaseConsumer.Dataset

Синтаксис

Dataset: IDatasetModel;

Синтаксис Fore.NET

Dataset: Prognoz.Platform.Interop.Db.IDatasetModel;

Описание

Свойство Dataset определяет реляционный объект репозитория, с которым связан данный приёмник данных.

Комментарии

Для определения реляционного объекта репозитория, с которым связан источник данных, используйте свойство IDtMetabaseProvider.Dataset.

Пример Fore

Для выполнения примера предполагается наличие в репозитории задачи ETL с идентификатором «ETL» и таблицы с идентификатором «TABLE».

Добавьте ссылки на системные сборки: Andy, Db, Drawing, Dt, Etl, Metabase.

Sub Main;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    EtlTask: IEtlTask;
    EtlConsumer: IEtlPlainDataConsumer;
    MBConsumer: IDtMetabaseConsumer;
    Tab: IDatasetModel;
    Fields: IDatasetModelFields;
    WxConsumer: IWxRectangle;
    WxETLConsumer: IWxETLObject;
Begin
    MB := MetabaseClass.Active;
    
//Поиск задачи ETL. Объект репозитория с идентификатором «ETL»
    MObj := MB.ItemById("ETL").Edit;
    Tab := MB.ItemById(
"TABLE").Bind As IDatasetModel;
    Fields := Tab.Fields;
    EtlTask := MObj 
As IEtlTask;
    
//Начало создания приёмника репозитория
    //Создание объекта «Приёмник репозитория»
    EtlConsumer := EtlTask.Create(EtlObjectType.PlainDataMetabaseConsumer) As IEtlPlainDataConsumer;
    EtlConsumer := EtlConsumer.Edit;
    EtlConsumer.Id := 
"MB_CONSUMER";
    EtlConsumer.Name := 
"Приёмник данных репозитория";
    EtlConsumer.Description := 
"Приёмник данных репозитория";
    
//Настройка приёмника данных
    MBConsumer := EtlConsumer.Consumer As IDtMetabaseConsumer;
    MBConsumer.Dataset := Tab;
    MBConsumer.CatchAddRecordException := 
True;
    EtlConsumer.FillDefault;
    EtlConsumer.KeyFieldNames := Fields.Item(
0).Id;
    
//Сохраняем приёмник репозитория
    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(5050);
    WxConsumer.Extension := WxETLConsumer 
As IWxShapeExtension;
    
//Конец создания визуального объекта
    //Сохранение задачи ETL
    MObj.Save;
End Sub Main;

После выполнения примера в задаче ETL будет создан объект «Приёмник репозитория». Данный приёмник будет связан с таблицей репозитория «TABLE». При экспорте данных будет производиться обновление записей по содержимому первого поля таблицы.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Etl;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.Db;
Imports Prognoz.Platform.Interop.Andy;
Imports Prognoz.Platform.Interop.Drawing;
...
Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    EtlTask: IEtlTask;
    EtlConsumer: IEtlPlainDataConsumer;
    MBConsumer: IDtMetabaseConsumer;
    Tab: IDatasetModel;
    Fields: IDatasetModelFields;
    WxConsumer: IWxRectangle;
    WxETLConsumer: IWxETLObject;
    PinPosition: GxPointF = New GxPointFClass();
Begin
    MB := Params.Metabase;
    //Поиск задачи ETL. Объект репозитория с идентификатором «ETL»
    MObj := MB.ItemById["ETL"].Edit();
    Tab := MB.ItemById["TABLE"].Bind() As IDatasetModel;
    Fields := Tab.Fields;
    EtlTask := MObj As IEtlTask;
    //Начало создания приёмника репозитория
    //Создание объекта «Приёмник репозитория»
    EtlConsumer := EtlTask.Create(EtlObjectType.eotPlainDataMetabaseConsumer) As IEtlPlainDataConsumer;
    EtlConsumer := EtlConsumer.Edit();
    EtlConsumer.Id := "MB_CONSUMER";
    EtlConsumer.Name := "Приёмник данных репозитория";
    EtlConsumer.Description := "Приёмник данных репозитория";
    //Настройка приёмника данных
    MBConsumer := EtlConsumer.Consumer As IDtMetabaseConsumer;
    MBConsumer.Dataset := Tab;
    MBConsumer.CatchAddRecordException := True;
    EtlConsumer.FillDefault();
    EtlConsumer.KeyFieldNames := Fields.Item[0].Id;
    //Сохраняем приёмник репозитория
    EtlConsumer.Save();
    //Конец создания приёмника репозитория
    //Начало создания визуального объекта
    WxConsumer := EtlTask.Workspace.CreateRectangle();
    WxETLConsumer := New WxETLObject.Create();
    WxETLConsumer.ETLObject := EtlConsumer;
    WxConsumer.Style.TextPosition := WxTextPosition.wtpBottom;
    WxConsumer.Style.PictureMarginTop := -10;
    PinPosition := WxConsumer.PinPosition;
    PinPosition.Create(5050);
    WxConsumer.Extension := WxETLConsumer As IWxShapeExtension;
    //Конец создания визуального объекта
    //Сохранение задачи ETL
    MObj.Save();
    End Sub;

См. также:

IDtMetabaseConsumer