Picking location determination in deliveries

The standard technique to determine storage location during delivery creation is to configure the following nodes:

Logistics Execution > Picking > Determine Picking Location > Define Rules for Picking Location Determination

The delivery type is assigned to a rule (MALA is default, which implies the node below is activated)

Logistics Execution > Picking > Determine Picking Location > Assign Picking Locations

This node determines the picking storage location based on shipping conditions, shipping point, plant and storage conditions.

I encountered a situation where the storage location determination during delivery creation was dependent on the material/plant and not on the storage conditions. Now, you might argue that the storage condition belongs to the material master. But the sad part is that this field is in the basic view, hence MARA table. So I cannot have different storage conditions for the same material in different plants.

The first choice was to use the subroutine USEREXIT_LGORT_DETERMINATION in the program MV50AFZZ. But that didn’t help, since the program wouldn’t stop there. So I found a more generic technique which allows you to change any field of a delivery while it is being saved.

The subroutine USEREXIT_MOVE_FIELD_TO_LIPS allows you to update the storage location (or any other field) based on your own logic. This is available in the program MV50AFZ1 and is called whenever the delivery is saved. So even if you would like to change a delivery line item (in VL02N), this program would get called, hence it makes sense to be careful while including code in the subroutine.

Leave a comment