In R2 there are several steps and places that picking routes/Picking lines are created, depending if you have an order-based picking or consolidated picking.
The fundamental element for a picking route is output orders, that acts as the basis.
And Output orders are created through the class\WMSOrderCreate:
As soon as the WMSOrder is created, it can try to attach itself to a shipment (consolidated scenario)(Also WMSOrderCreate)
If you follow the trace in the wmsOrder.autoAddShipment() you will get to the code where the WMSOrderTrans is created.
WMSOrderTrans is created here
And here :
The final step is the creation of the WMSPickingRoute, that happens in the shipment reservation. And inside this method you will also find the creation process for the picking route.
So the sequence and steps for creating a picking route is the following :
1. WMSOrder is created
2. WMSShipment is created
3. WMSOrderTrans is created
4. WMSPickingroute is created
Also remember that the structure of shipmentId, PickingrouteID’s is very loose entities, and is not strongly anchored to inventTrans. So it is possible to move wmsorderTrans transactions between pickingroute and shipments quite easily by using X++.