I am creating transfer order by code and it works but i want to assign lot no also i wrote this code
procedure AssignLotNO(transLine: Record "Transfer Line")
var
EntryNo: Integer;
begin
if LastTRackingSPecs.FindLast() then
EntryNo := LastTRackingSPecs."Entry No." + 1;
GetItem(transLine."Item No.");
TRackingSpecs.InitFromTransLine(transLine, transLine."Shipment Date", Direction::Outbound);
TRackingSpecs.Validate("Quantity Handled (Base)", 0);
TRackingSpecs.Validate("Quantity Invoiced (Base)", 0);
AssignNewLotNo(TRackingSpecs);
TRackingSpecs."Qty. Rounding Precision (Base)" := 1;
TRackingSpecs.Validate("Quantity (Base)", transLine.Quantity);
TRackingSpecs."Entry No." := EntryNo;
TRackingSpecs.Insert();
TRackingSpecs."Qty. per Unit of Measure" := 1;
TempItemTrackLineInsert.TransferFields(TRackingSpecs);
TempItemTrackLineInsert.Insert();
end;
local procedure AssignNewLotNo(var specs: Record "Tracking Specification")
var
IsHandled: Boolean;
begin
Item.TestField("Lot Nos.");
specs.Validate("Lot No.", NoSeriesMgt.GetNextNo(Item."Lot Nos.", WorkDate(), true));
end;
local procedure GetItem(ItemNo: Code[20])
var
begin
if Item."No." <> ItemNo then begin
Item.Get(ItemNo);
Item.TestField("Item Tracking Code");
if ItemTrackingCode.Code <> Item."Item Tracking Code" then
ItemTrackingCode.Get(Item."Item Tracking Code");
end;
end;
it assigns lot no in item tracking lines but when i try to post the transfer order it given me that "You must assign a lot number for item" even though when i open item tracking lines there is Lot No assigned