IEtlTask.Create

Синтаксис

Create(Type: EtlObjectType): IEtlObject;

Параметры

Type. Тип объекта задачи ETL.

Описание

Метод Create создает объект задачи ETL. Тип объекта передается посредством параметра Type.

Пример Fore

Для выполнения примера добавьте ссылки на системные сборки:

Предполагается наличие в репозитории папки с идентификатором «ETLTASKS» и файла «data.xls» на локальном диске, из которого будут импортироваться данные. Создадим новую задачу ETL в папке с указанным идентификатором. Добавим в задачу объект «Импорт из Excel».

Sub  Main;
Var  MB: IMetabase;
    ci: IMetabaseObjectCreateInfo;
    MbObj: IMetabaseObject;
    EtlTask: IEtlTask;
    EtlProvider: IEtlPlainDataProvider;
    ExcelProvider: IDtExcelProvider;
    WxConsumer: IWxRectangle;
    WxETLConsumer: IWxEtlObject;
Begin
    MB := MetabaseClass.Active;
    
//Создаем новую задачу ETL
    ci := Mb.CreateCreateInfo;
    ci.ClassId := MetabaseObjectClass.KE_CLASS_ETLTASK;
    ci.Parent := MB.ItemById(
"ETLTASKS" );

    ci.Name :=  "Задача ETL" ;
    ci.Id := 
"ETLTASK" ;
    MbObj := Mb.CreateObject(ci).Edit;
    EtlTask := MbObj 
As  IEtlTask;
    
//Создаем объект "Импорт из Excel"
    EtlProvider := EtlTask.Create(EtlObjectType.PlainDataExcelProvider) As  IEtlPlainDataProvider;
    EtlProvider := EtlProvider.Edit;
    EtlProvider.Id := 
"File_XLS" ;
    EtlProvider.Name := 
"Источник данных XLS" ;
    EtlProvider.Description := 
"Данные из файла data.xls" ;
    
//Настраиваем источник данных
    ExcelProvider := EtlProvider.Provider As  IDtExcelProvider;
    ExcelProvider.File := 
"c:\data.xls" ;
    ExcelProvider.DriverVersion := 
"Excel 8.0" ;
    ExcelProvider.Query := 
"select * from [Лист1$]" ;
    ExcelProvider.HasHeader := 
False ;

    EtlProvider.FillDefault;
     //Сохраняем источник Excel
    EtlProvider.Save;
    
//Создаем визуальный объект
    WxConsumer := EtlTask.Workspace.CreateRectangle;
    WxETLConsumer := 
New  WxEtlObject.Create;
    WxETLConsumer.EtlObject := EtlProvider;
    WxConsumer.Style.TextPosition := WxTextPosition.Bottom;
    WxConsumer.Style.PictureMarginTop := -
10 ;

    WxConsumer.PinPosition :=  New GxPointF.Create(5050 );
    WxConsumer.Extension := WxETLConsumer 
As  IWxShapeExtension;
    
//Сохраняем объект репозитория
    MbObj.Save;
End Sub Main;

После выполнения примера в папке с идентификатором «ETLTASKS» будет создана задача ETL с наименованием «Задача ETL». В данной задаче ETL будет добавлен объект «Импорт из Excel» с идентификатором «FILE_XLS», данные берутся из файла «c:\data.xls».

Пример Fore.NET

Указанная процедура является точкой входа Main в модуле Program .NET-сборки. В данный модуль должны быть импортированы сборки Andy, Drawing, Dt, Etl и Metabase из системной сборки Prognoz.Platform.Interop.

Предполагается наличие в репозитории папки с идентификатором «ETLTASKS» и файла «data.xls» на локальном диске, из которого будут импортироваться данные. Создадим новую задачу ETL в папке с указанным идентификатором. Добавим в задачу объект «Импорт из Excel».

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    ci: IMetabaseObjectCreateInfo;
    MbObj: IMetabaseObject;
    EtlTask: IEtlTask;
    EtlProvider: IEtlPlainDataProvider;
    ExcelProvider: IDtExcelProvider;
    WxConsumer: IWxRectangle;
    WxETLConsumer: IWxEtlObject;
    Point: GxPointFClass;

Begin
    MB := Params.Metabase;
     //Создаем новую задачу ETL
    ci := Mb.CreateCreateInfo();
    ci.ClassId := MetabaseObjectClass.KE_CLASS_ETLTASK  As  integer; ;
    ci.Parent := MB.ItemById["ETLTASKS"];
    ci.Name := "Задача ETL";
    ci.Id := "ETlTASK";
    MbObj := Mb.CreateObject(ci).Edit();
    EtlTask := MbObj As  IEtlTask;      //Создаем объект "Импорт из Excel"
    EtlProvider := EtlTask.Create(EtlObjectType.eotPlainDataExcelProvider) As IEtlPlainDataProvider;
    EtlProvider := EtlProvider.Edit();
    EtlProvider.Id := "File_XLS";
    EtlProvider.Name := "Источник данных XLS";

    EtlProvider.Description := "Данные из файла data.xls";
     //Настраиваем источник данных
    ExcelProvider := EtlProvider.Provider As  IDtExcelProvider;
    ExcelProvider.File := "c:\data.xls" ;
    ExcelProvider.DriverVersion := "Excel 8.0";
    ExcelProvider.Query := "select * from [Лист1$]";
    ExcelProvider.HasHeader := False;
    EtlProvider.FillDefault();
     //Сохраняем источник Excel
    EtlProvider.Save();
     //Создаем визуальный объект
    WxConsumer := EtlTask.Workspace.CreateRectangle();

    WxETLConsumer := New  WxEtlObject.Create();
    WxETLConsumer.EtlObject := EtlProvider;
    WxConsumer.Style.TextPosition := WxTextPosition.wtpBottom;
    WxConsumer.Style.PictureMarginTop := -10;
    Point := New  GxPointFClass();
    Point.Create(5050);
    WxConsumer.PinPosition :=  Point;
    WxConsumer.Extension := WxETLConsumer As IWxShapeExtension;
     //Сохраняем объект репозитория
    MbObj.Save();
End  Sub;

Результат выполнения примера аналогичен результату примера на Fore.

См. также:

IEtlTask