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;