I recently posted about a problem with replenishment using stringent FIFO/FEFO.
You can read the post here: WMS – Stringent FIFO/FEFO challenge with replenishment
Here is the solution to this problem (one possible solution, there are surely other solutions).
OK, the idea behind the solution to this problem, is to separate strategies between picking and replenishment based on stringent FIFO/FEFO.
This is normally done by a movement type indicator (e.g. 1) which influences the search strategy.
After that, strategy for picking to delivery needs to be maintained as *** (stringent FIFO/FEFO).
For replenishment (indicator 1), it needs to be +++ (stringent FIFO/FEFO user exit).
In user exit “MWMTO013” FM “EXIT_SAPLL03A_013” you can create include “ZXLTOU19” and activate user exit in CMOD.
Write the following code in your include ZXLTOU19:
if i_ltak–bwlvs EQ ‘319’. “REPLENISHMENT
case i_ltap–nltyp. “Pick from ST
when ‘001’ or ‘011’ or ‘021’. “all picking bin locations – as destinations
call function ‘L_QMAT_SFIFO_CREATE’
t_qmat_sfifo_cus = t_qmat
t_bdbatch_cus = t_bdbatch.
delete t_qmat where lgtyp eq i_ltap–nltyp.
In this way, your picking strategy will consider picking storage types (fixed bins) when picking for customer delivery,
and when doing so for replenishment, your picking bin will not be used.
Note: If you are using other movement type for replenishment (e.g. 919 instead of 319), change 319 in code to 919 or your replen.movement type.
There may be a way of doing this by using storage type user exit:
Enh: MWMTO004, FM: EXIT_SAPLL03A_006, Include: ZXLTOU08,
but for me it was a bit easier to implement this one, since in ZXLTOU08, source is already determined, and you seem to have control only on some overriding of the source T and bin. Didn’t want to hassle with that, but for the record I think it may be done through that user exit also.