Table 1225 Data Exch. Field Mapping

App
Base Application
Namespace
System.IO
Versions
17-28

Fields, 17Keys, 2Procedures, 5Events, 1Obsolete, 1

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/System/DataExchange/DataExchFieldMapping.Table.al237 lines, Copyright (c) Microsoft Corporation. MIT

namespace System.IO;

using System.Reflection;

table 1225 "Data Exch. Field Mapping"
{
    Caption = 'Data Exch. Field Mapping';
    DataClassification = CustomerContent;

    fields
    {
        field(1; "Data Exch. Def Code"; Code[20])
        {
            Caption = 'Data Exch. Def Code';
            NotBlank = true;
            TableRelation = "Data Exch. Def".Code;
        }
        field(2; "Table ID"; Integer)
        {
            Caption = 'Table ID';
            NotBlank = true;
            TableRelation = "Data Exch. Mapping"."Table ID";
        }
        field(3; "Column No."; Integer)
        {
            Caption = 'Column No.';
            NotBlank = true;
            TableRelation = "Data Exch. Column Def"."Column No." where("Data Exch. Def Code" = field("Data Exch. Def Code"),
                                                                        "Data Exch. Line Def Code" = field("Data Exch. Line Def Code"));
        }
        field(4; "Field ID"; Integer)
        {
            Caption = 'Field ID';
            TableRelation = Field."No." where(TableNo = field("Table ID"));
        }
        field(5; Optional; Boolean)
        {
            Caption = 'Optional';
        }
        field(6; "Use Default Value"; Boolean)
        {
            Caption = 'Use Default Value';

            trigger OnValidate()
            begin
                if not "Use Default Value" then
                    "Default Value" := '';
            end;
        }
        field(7; "Default Value"; Text[250])
        {
            Caption = 'Default Value';

            trigger OnValidate()
            begin
                Validate("Use Default Value", true);
            end;
        }
        field(8; "Data Exch. Line Def Code"; Code[20])
        {
            Caption = 'Data Exch. Line Def Code';
            NotBlank = true;
            TableRelation = "Data Exch. Line Def".Code where("Data Exch. Def Code" = field("Data Exch. Def Code"));
        }
        field(9; Multiplier; Decimal)
        {
            AutoFormatType = 0;
            Caption = 'Multiplier';
            InitValue = 1;

            trigger OnValidate()
            begin
                if IsValidToUseMultiplier() and (Multiplier = 0) then
                    Error(ZeroNotAllowedErr);
            end;
        }
        field(10; "Target Table ID"; Integer)
        {
            Caption = 'Target Table ID';
            TableRelation = AllObjWithCaption."Object ID" where("Object Type" = const(Table));
        }
        field(11; "Target Field ID"; Integer)
        {
            Caption = 'Target Field ID';
            TableRelation = Field."No." where(TableNo = field("Target Table ID"));

            trigger OnLookup()
            var
                "Field": Record "Field";
                FieldSelection: Codeunit "Field Selection";
            begin
                Field.SetRange(TableNo, "Target Table ID");
                if FieldSelection.Open(Field) then
                    Validate("Target Field ID", Field."No.");
            end;
        }
        field(12; "Target Table Caption"; Text[250])
        {
            CalcFormula = lookup("Table Metadata".Caption where(ID = field("Target Table ID")));
            Caption = 'Target Table Caption';
            FieldClass = FlowField;
        }
        field(14; "Target Table Field Caption"; Text[80])
        {
            CalcFormula = lookup(Field."Field Caption" where(TableNo = field("Target Table ID"),
                                                              "No." = field("Target Field ID")));
            Caption = 'Target Field Caption';
            FieldClass = FlowField;
        }
        field(20; "Transformation Rule"; Code[20])
        {
            Caption = 'Transformation Rule';
            TableRelation = "Transformation Rule";
        }
        field(21; "Overwrite Value"; Boolean)
        {
            Caption = 'Overwrite Value';
        }
        field(30; Priority; Integer)
        {
            Caption = 'Priority';
        }

    }

    keys
    {
        key(Key1; "Data Exch. Def Code", "Data Exch. Line Def Code", "Table ID", "Column No.", "Field ID")
        {
            Clustered = true;
        }
        key(Key2; "Data Exch. Def Code", "Data Exch. Line Def Code", "Table ID", Priority)
        {
        }
    }

    fieldgroups
    {
    }

    trigger OnInsert()
    var
        IsHandled: Boolean;
    begin
        IsHandled := false;
        OnBeforeInsert(Rec, IsHandled);
        if IsHandled then
            exit;

        TestField("Column No.");

        if IsValidToUseMultiplier() and (Multiplier = 0) then
            Validate(Multiplier, 1);
    end;

    trigger OnModify()
    begin
        if IsValidToUseMultiplier() and (Multiplier = 0) then
            Validate(Multiplier, 1);
    end;

    var
        ZeroNotAllowedErr: Label 'All numeric values are allowed except zero.';

    procedure InsertRec(DataExchDefCode: Code[20]; DataExchLineDefCode: Code[20]; TableId: Integer; ColumnNo: Integer; FieldId: Integer; NewOptional: Boolean; NewMultiplier: Decimal)
    begin
        Init();
        Validate("Data Exch. Def Code", DataExchDefCode);
        Validate("Data Exch. Line Def Code", DataExchLineDefCode);
        "Table ID" := TableId;
        "Column No." := ColumnNo;
        "Field ID" := FieldId;
        Validate(Optional, NewOptional);
        Validate(Multiplier, NewMultiplier);
        Insert();
    end;

    procedure FillSourceRecord("Field": Record "Field")
    begin
        SetRange("Field ID");
        Init();

        "Table ID" := Field.TableNo;
        "Field ID" := Field."No.";
    end;

    procedure GetColumnCaption(): Text
    var
        DataExchColumnDef: Record "Data Exch. Column Def";
    begin
        DataExchColumnDef.SetRange("Data Exch. Def Code", "Data Exch. Def Code");
        DataExchColumnDef.SetRange("Data Exch. Line Def Code", "Data Exch. Line Def Code");
        DataExchColumnDef.SetRange("Column No.", "Column No.");
        if DataExchColumnDef.FindFirst() then
            exit(DataExchColumnDef.Name);
        exit('');
    end;

    procedure GetFieldCaption(): Text
    var
        RecordRef: RecordRef;
        FieldRef: FieldRef;
    begin
        RecordRef.Open("Table ID");
        FieldRef := RecordRef.Field("Field ID");
        exit(FieldRef.Caption());
    end;

    local procedure IsValidToUseMultiplier(): Boolean
    var
        DataExchDef: Record "Data Exch. Def";
        DataExchColumnDef: Record "Data Exch. Column Def";
    begin
        DataExchDef.Get("Data Exch. Def Code");
        if DataExchColumnDef.Get("Data Exch. Def Code", "Data Exch. Line Def Code", "Column No.") then
            exit(DataExchColumnDef."Data Type" = DataExchColumnDef."Data Type"::Decimal);
        exit(false);
    end;

    procedure GetPath(): Text
    var
        DataExchColumnDef: Record "Data Exch. Column Def";
    begin
        DataExchColumnDef.SetRange("Data Exch. Def Code", "Data Exch. Def Code");
        DataExchColumnDef.SetRange("Data Exch. Line Def Code", "Data Exch. Line Def Code");
        DataExchColumnDef.SetRange("Column No.", "Column No.");
        if DataExchColumnDef.FindFirst() then
            exit(DataExchColumnDef.Path);
        exit('');
    end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforeInsert(var DataExchFieldMapping: Record "Data Exch. Field Mapping"; var IsHandled: Boolean)
    begin
    end;
}