IEtlPlainDataConsumer.Consumer

Syntax

Consumer: IDtConsumer;

Description

The Consumer property returns import or export object.

Example

Executing of this example requires that the repository contains an ETL task with the ETL identifier and a table with the Table identifier.

Sub UserProc;
Var
    Metabase: IMetabase;
    MObj: IMetabaseObject;
    EtlTask: IEtlTask;
    EtlConsumer: IEtlPlainDataConsumer;
    MBConsumer: IDtMetabaseConsumer;
    i, j: integer;
    Tab: IDatasetModel;
    Fields_ETL: IEtlPlainFields;
    Field: IEtlPlainField;
    FieldType: String;

Begin
//Search of ETL task . Object of repository with ID ETL
    Metabase := MetabaseClass.Active;
    MObj := Metabase.ItemById("ETL").Edit;
    EtlTask := MObj As IEtlTask;
    If EtlTask.Workspace.Shapes.Count > 0 Then
        j := EtlTask.Workspace.Shapes.Count - 1;
        // Remove ETL task objects
        For i := j To 0 Step - 1 Do
        EtlTask.Workspace.Shapes.Item(i).Delete;
            End For;
        EtlTask.FindById("MB_Consumer").Remove;
    End If;

    Tab := Metabase.ItemById("Table").Bind As IDatasetModel;
    //Creation of the object Repository consumer
    EtlConsumer := EtlTask.Create(EtlObjectType.PlainDataMetabaseConsumer) As IEtlPlainDataConsumer;
    EtlConsumer := EtlConsumer.Edit;
    EtlConsumer.Id := "MB_Consumer";
    EtlConsumer.Name := Repository data consumer;
//Settings of data Consumer
    MBConsumer := EtlConsumer.Consumer As IDtMetabaseConsumer;
    MBConsumer.Dataset := Tab;
    EtlConsumer.FillDefault;
    Fields_ETL := EtlConsumer.PlainInput.Fields;
    For i := 0 To Fields_ETL.Count - 1 Do
        Field := Fields_ETL.Item(i);

        FieldDataType(Field.DataType, FieldType);
        Debug.WriteLine("--------------------------------------------");
        Debug.WriteLine("Field : " + Field.Name);
        Debug.WriteLine(" Type : " + FieldType);
        Debug.WriteLine(" Size : " + Field.Size.ToString);
        Debug.WriteLine(" Precision : " + Field.Precision.ToString);
        Debug.WriteLine("--------------------------------------------");
    End For;
    EtlConsumer.Save;
//Creation of the visual  object
    CreateWX(EtlConsumer, EtlTask);
    MObj.Save
End Sub UserProc;
 
Sub CreateWX(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(2020);
    WxDataTrans.Extension := WxETLDataTrans As IWxShapeExtension;
End Sub CreateWX;
 
Sub FieldDataType(FieldDataType: DbDataType; Var FieldType: string); { Get field type name }
Begin
    Select Case FieldDataType
        Case DbDataType.NoData: FieldType := "NoData";

        Case DbDataType.String: FieldType := "String";
        Case DbDataType.Integer: FieldType := "Integer";
        Case DbDataType.Float: FieldType := "Float";
        Case DbDataType.DateTime: FieldType := "DateTime";
        Case DbDataType.Blob: FieldType := "Blob";
        Case DbDataType.Boolean: FieldType := "Boolean";
        Case DbDataType.Date: FieldType := "Date";
    End Select;
End Sub FieldDataType;

After executing the UserProc procedure for ETL task, repository data consumer is created, input fields are identical with fields of a specified consumer (table with the Table identifier). While executing the example information about consumer input fields are displayed into console window.

See also:

IEtlPlainDataConsumer