Enhance SAP EWM

Putaway bin determination (Putaway strategy)

Note: The purpose of this series of blogs/videos is to show you how to enhance different areas/functionalities in the SAP EWM putaway bin. Thus, it will tackle technical details and complex coherences which might not be suitable for EWM beginners.

The purpose of this blog is to give you
1. everything you need in order to understand every single detail of the EWM standard putaway logic
2. the tools to adjust it based on your needs
Let us jump into the details right away!

First of all it is important to know that the heart of the EWM standard putaway strategy is sitting in function group /SCWM/PUT_BIN_DET (master program /SCWM/SAPLPUT_BIN_DET):

Here you can everything which is needed to understand EWM putaway in detail. You will find plenty of includes carrying different subroutines as well the main include containing the function modules:

Looking at the subroutines for instance, you find many interesting spots which can help you understand the different strategies and checks which are applied during bin determination:

In the include for the function modules you will also find lots of useful spots e.g. the FM for storage type determination or the one which executes the checks for dangerous goods:

In terms of enhancements we will concentrate now on the Badis provided by SAP and ignore additional options (implicit/explicit enhancements etc.). Enhancement spot /SCWM/ES_CORE_PTS contains most of the Badis which can be used to adjust the putaway logic based on your needs

Based on two of the most commonly used Badis I would like to show you how we can include our custom logic here.
– Example 1: Exclude specific bins based on quantity in warehouse task
– Example 2: Change the putaway rule based on base UOM from product master data

Example 1
Here we can use Badi /SCWM/EX_CORE_PTS_FILT_SORT to filter & sort potential destination bins:


SAP EWM Putaway bin determination_07

Apply the where-us-list of the interface method in order to understand where the Badi is accessible:

Different spots in call stack during runtime:

We will go into detail for the call in the last screenshot above. Subroutine BIN_DETERMINATION_3 which is called in the context of FM /SCWM/PUT_BIN_DET (program /SCWM/LPUT_BIN_DETF92 > also the stack is interesting here):

Product master data is imported with is_mat_global / it_mat_UOM and WT data (containing the quantity) is imported in is_ltap. Based on this we can now easily include our logic to ignore specific bins based on the quantity in any given UOM (the logic is just random – thus no details here). The internal table to be adjusted here is ct_hlplagpl (structure details in screenshot below) which is carrying all possible destination bins based on standard putaway strategy. Within the interface method we can either remove single rows (e.g. remove bins which should not be used in the given scenario) or change the sorting in the table (e.g. prioritize specific bins over others).

SAP EWM Putaway bin determination_13

Below screenshot shows additional import parameters of the method which can be used as a base for your custom logic to decide how to filter/sort the bins:

Example 2
Here we can use Badi /SCWM/EX_CORE_PTS_TYPSQ to manipulate storage type search sequence as well as putaway rule which had been determined by standard logic before.

Product master data is imported with is_mat_global. Putaway rule by variable iv_put_rule. This is everything we need in order to set the rule based on the base UOM (again – this is just an example and might not make sense for most of the operations).

I think the approach is clear now and I think you got the most important takeaways.
– Heart of EWM putaway logic: Function group /SCWM/PUT_BIN_DET
– Sweet spot to enhance based on custom requirements: Enhancement spot /SCWM/ES_CORE_PTS

Happy coding/customizing!

I hope this blog post provides value to you and you could learn something. Please feel free to subscribe to my blog updates or my youtube channel in case you want to be notified about new posts!

Get my monthly blog-updates!

Subscribe to my Youtube channel!