8

Currently we can create DataUpgrades for Code fields with a Text, but we receive an error when we run the DataUpgrade.


The Following Code isn't working:

procedure UpgradeJobPlanningLine()

var

    JobPlanningLine: Record "Job Planning Line";

    JobPlanningLineDataTransfer: DataTransfer;

begin

    JobPlanningLineDataTransfer.SetTables(Database::"Job Planning Line", Database::"Job Planning Line");

    JobPlanningLineDataTransfer.AddSourceFilter(JobPlanningLine.FieldNo("PTE Code Field"), '=%1', 'OldValue');

    JobPlanningLineDataTransfer.AddConstantValue('NewValue', JobPlanningLine.FieldNo("PTE Code Field"));

    JobPlanningLineDataTransfer.CopyFields();

end;


Error:

Could not upgrade the extension 'PTE-BaseApp' by 'Default Publisher' from version '1.1.53051.0' to '1.1.53090.0' for tenant 'default' and company 'CRONUS DE' due to the following error: 'Field: 'NewValue' and constant value 'NewValue' are of different types.'


When I update the code to use Code variables instead then everything is working:


procedure UpgradeJobPlanningLine(OldCode: Code[20]; NewCode: Code[20])

var

    JobPlanningLine: Record "Job Planning Line";

    JobPlanningLineDataTransfer: DataTransfer;

begin

    JobPlanningLineDataTransfer.SetTables(Database::"Job Planning Line", Database::"Job Planning Line");

    JobPlanningLineDataTransfer.AddSourceFilter(JobPlanningLine.FieldNo("PTE Code Field"), '=%1', OldCode);

    JobPlanningLineDataTransfer.AddConstantValue(NewCode, JobPlanningLine.FieldNo("PTE Code Field"));

    JobPlanningLineDataTransfer.CopyFields();

end;

Category: Development
STATUS DETAILS
New