To implement this hotfix, you must have a developer license.
You do not have to have rights to the data stores unless you have to perform data repair.
To resolve this problem, change the code in the Create Pick codeunit (7312) as follows:
...
PROCEDURE CheckReservation@45(QtyBaseAvailToPick@1000 : Decimal;LocationCode@1007 : Code[10];SourceType@1005 : Integer;SourceSubType@1004 : '0,1,2,3,4,5,6,7,8,9,10';SourceNo@1003 : Code[20];SourceLineNo@1002 : Integer;SourceSubLineNo@1001 : Integer;QtyPerUnitOfMeasure@1013 : Decimal;VAR Quantity@1006 : Decimal;VAR QuantityBase@1008 : Decimal);
...
ReservationExists := TRUE;
REPEAT
IF ReservEntry2.GET(ReservEntry."Entry No.",NOT ReservEntry.Positive) THEN
IF ReservEntry2."Source Type" <> DATABASE::"Item Ledger Entry" THEN BEGIN
QtyBaseResvdNotOnILE += ReservEntry2."Quantity (Base)";
// Delete the following line.
QtyResvdNotOnILE += ReservEntry2.Quantity;
// End of the deleted line.
...
END;
UNTIL ReservEntry.NEXT = 0;
...
...
PROCEDURE CheckReservation@45(QtyBaseAvailToPick@1000 : Decimal;LocationCode@1007 : Code[10];SourceType@1005 : Integer;SourceSubType@1004 : '0,1,2,3,4,5,6,7,8,9,10';SourceNo@1003 : Code[20];SourceLineNo@1002 : Integer;SourceSubLineNo@1001 : Integer;QtyPerUnitOfMeasure@1013 : Decimal;VAR Quantity@1006 : Decimal;VAR QuantityBase@1008 : Decimal);
...
ReservationExists := TRUE;
REPEAT
IF ReservEntry2.GET(ReservEntry."Entry No.",NOT ReservEntry.Positive) THEN
IF ReservEntry2."Source Type" <> DATABASE::"Item Ledger Entry" THEN BEGIN
QtyBaseResvdNotOnILE += ReservEntry2."Quantity (Base)";
// Add the following line.
QtyResvdNotOnILE += ReservEntry2."Quantity (Base)";
// End of the added line.
...
END;
UNTIL ReservEntry.NEXT = 0;
// Add the following line.
QtyResvdNotOnILE := ROUND(QtyResvdNotOnILE / QtyPerUnitOfMeasure,0.00001);
// End of the added line.
...