IEtlPlainDataFixedUserProvider.Template

Syntax

Template: IEtlTemplate;

Description

The Template property determines a user provider template.

Comments

The template is used to set user algorithm appearance on the desktop.

Example

Executing the example requires that the repository contains:

Add links to the Andy, Drawing, Etl, Fore, Metabase system assemblies.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    EtlTask: IEtlTask;
    FixedUserProvider: IEtlPlainDataFixedUserProvider;
    FixedUserConsumer: IEtlPlainDataFixedUserConsumer;
    Paramss: ISharedParams;
    Templates: IEtlTemplates;
    Template: IEtlTemplate;
Begin
    // Get repository
    MB := MetabaseClass.Active;
    // Get ETL task
    MObj := MB.ItemById("ETL_TASK").Edit;
    EtlTask := MObj As IEtlTask;
    //Create the Custom Provider object
    FixedUserProvider := EtlTask.Create(EtlObjectType.PlainDataFixedUserProvider) As IEtlPlainDataFixedUserProvider;
    // Use template
    Paramss := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Edit As ISharedParams;
    Templates := Paramss.EtlTemplates(ETLTemplateType.Provider);
    Template := Templates.Add;
    Template.Module := mb.ItemById("USERSCLASSFORETL");
    Template.Class_ := "User";
    Template.Id := "TemplateProv";
    Template.Name := "TemplNameP";
    FixedUserProvider.Template := Template;
    (Paramss As IMetabaseObject).Save;
    // Set mode for provider
    FixedUserProvider.ExMode := True;
    // Set source name
    FixedUserProvider.Name := "User provider";
    // Visual representation of source in task
    CreateWXP(FixedUserProvider, EtlTask);
    //Create the Custom Consumer object
    FixedUserConsumer := EtlTask.Create(EtlObjectType.PlainDataFixedUserConsumer) As IEtlPlainDataFixedUserConsumer;
    // Use template
    Paramss := MB.SpecialObject(MetabaseSpecialObject.SharedParams).Edit As ISharedParams;
    Templates := Paramss.EtlTemplates(ETLTemplateType.Consumer);
    Template := Templates.Add;
    Template.Module := mb.ItemById("USERSCLASSFORETL");
    Template.Class_ := "User";
    Template.Id := "TemplateCons";
    Template.Name := "TemplNameC";
    FixedUserProvider.Template := Template;
    (Paramss As IMetabaseObject).Save;
    // Set single mode for consumer
    FixedUserConsumer.ExMode := True;
    // Set consumer name
    FixedUserConsumer.Name := "User consumer";
    // Visual representation of consumer in task
    CreateWXC(FixedUserConsumer, EtlTask);
    // Save changes
    Mobj.Save;
End Sub UserProc;

// Create a visual object of data source
Sub CreateWXP(CopyObj: IEtlPlainDataProvider; Etltask: IEtltask);
Var
    WxDataTrans: IWxRectangle;
    WxETLDataTrans: IWxEtlObject;
Begin
    WxDataTrans := EtlTask.Workspace.CreateRectangle;
    WxDataTrans.Id := CopyObj.Id;
    WxETLDataTrans := New WxEtlObject.Create;
    WxETLDataTrans.EtlObject := CopyObj;
    WxDataTrans.Style.TextPosition := WxTextPosition.Bottom;
    WxDataTrans.Style.PictureMarginTop := -10;
    WxDataTrans.PinPosition := New GxPointF.Create(2020);
    WxDataTrans.Extension := WxETLDataTrans As IWxShapeExtension;
End Sub CreateWXP;

// Create a visual object of data consumer
Sub CreateWXC(CopyObj: IEtlPlainDataConsumer; Etltask: IEtltask);
Var
    WxDataTrans: IWxRectangle;
    WxETLDataTrans: IWxEtlObject;
Begin
    WxDataTrans := EtlTask.Workspace.CreateRectangle;
    WxDataTrans.Id := CopyObj.Id;
    WxETLDataTrans := New WxEtlObject.Create;
    WxETLDataTrans.EtlObject := CopyObj;
    WxDataTrans.Style.TextPosition := WxTextPosition.Bottom;
    WxDataTrans.Style.PictureMarginTop := -10;
    WxDataTrans.PinPosition := New GxPointF.Create(4040);
    WxDataTrans.Extension := WxETLDataTrans As IWxShapeExtension;
End Sub CreateWXC;

After executing the example data provider and data consumer are created based on template.

See also:

IEtlPlainDataFixedUserProvider