I am testing the standard feature warehouse shipment in Navision. I discovered that there is a very odd feature. Assume that the user needs warehouse shipment, receipt, put-away and pick. Assume that you have a warehouse shipment for 100 items. The system also has enough stocks for all the 100 items. On top of the current inventory, you have just received 1 of the 100 items. You post the warehouse receipt but you do not register the warehouse put-away.
When the warehouse pick is created, you will not discover that only 99 items are in the warehouse pick (You can count but that is a pretty poor solution.). If you check the warehouse shipment, you will find that one of the warehouse shipment line is not picked. (Pick Qty is zero) But if you are the user, even filtering and checking the warehouse shipment lines is a pain.
Does anyone have any idea how to solve this without customization or buying new modules like cross -docking?
I am quite familiar with Navision but I am a rookie with the warehouse module.
Tan Eng Siong
0
Comments
Independent Consultant/Developer
blog: https://dynamicsuser.net/nav/b/ara3n
The users who post the warehouse shipment is different from the users who post the warehouse pick so making the solution alerting on the warehouse ship is not effective. I am aware that there is a document status in the Warehouse ship but it only appears after the pick is registered.
On the location-card there is a field called "Always Create Pick Line " located on the tab "Bin Policies"
From the help
A check mark in this field indicates that the program will create a pick line even if it cannot find an appropriate zone and bin from which to pick the item. The zone code and bin number on the line will be empty, and you must fill in these fields manually before you can register the pick.
Now if a pick is created also lines are created for the items which are not inventory.
The function is CalcInvtAvailQty
The line of code in question is at the bottom.
EXIT(
Inventory - QtyReceivedNotAvail - QtyAssgndtoPick -
ABS("Reserved Qty. on Inventory") - "Qty. Picked" - QtyPicked
+ QtyShipped);
We found that the variable QtyPicked is actually incorrect and it does not exist in 5 SP 1 or 4 SP 3.
The correct code should be
EXIT(
Inventory - QtyReceivedNotAvail - QtyAssgndtoPick -
ABS("Reserved Qty. on Inventory") - "Qty. Picked" + QtyShipped);
However, we found that the both QtyReceivedNotAvail and QtyAssgndtoPick were picking up the same quantity in the warehouse put-away documents.
When we looked at the function CalcQtyAssgndtoPick, we found the code
IF Location."Bin Mandatory" THEN
SETRANGE("Action Type","Action Type"::Take)
Since the Action Type is grouped by Take, the code counts both the Pick and Put-away.
So what we want to do is to move the section marked Code to be shifted outside the Begin End;
IF Location."Bin Mandatory" THEN
SETRANGE("Action Type","Action Type"::Take)
ELSE BEGIN
SETRANGE("Action Type","Action Type"::" ");
SETRANGE("Breakbulk No.",0);
//Code to be shifted
IF Location."Require Shipment" THEN
SETRANGE("Activity Type","Activity Type"::Pick)
ELSE
SETRANGE("Activity Type","Activity Type"::"Invt. Pick");
//Code to be shifted
END;
Anybody has any opinion about our change in code?
Thank you.