SAP EWM Blog

This article covers the first group of BAdIs, the ones whose names start with /SCWM/. The purpose of this overview is mostly to get acquainted with them. I did not describe in detail how each BAdI works; I only wanted to understand in which areas the standard logic can be changed. For several BAdIs I never did work out what they are for; I highlighted those in colour so as to come back to them later and look at them more closely in the debugger. I will cover the most frequently used BAdIs in detail in separate articles.

So, here we go:

Composite Enhancement Spot /SCWM/ES_PRODUCT_MASS_CHANGE

  • /SCWM/ES_PRODUCT_MASS_CHANGE - Field Control for Mass Change of the Product in the Monitor
/SCWM/EX_PROD_MASS_CHANGE A BAdI that makes it possible to add new product attributes for changing in the mass product change function of the warehouse monitor. You can add fields from the «Warehouse Data» and «Storage Type Data» tabs

Composite Enhancement Spot /SCWM/ESC_ARCH

  • /SCWM/ESC_ARCH_WME_HU - Enhancement Spot for Archiving Handling Units
/SCWM/EX_ARCH_WME_HU Intended for archiving your own Z tables together with the HU tables.
  • /SCWM/ESC_ARCH_WME_TO - Enhancement Spot for Archiving Warehouse Tasks
/SCWM/EX_ARCH_WME_TO Intended for archiving your own Z tables together with the warehouse task tables.
  • /SCWM/ESC_ARCH_WME_TU - Enhancement Spot for Archiving TU Activities
/SCWM/EX_ARCH_WME_TU Intended for archiving your own Z tables together with the TU activity tables.
  • /SCWM/ESC_ARCH_WME_WAVE - Enhancement Spot for Archiving Waves
/SCWM/EX_ARCH_WME_WAVE Intended for archiving your own Z tables together with the wave tables.
  • /SCWM/ESC_ARCH_WME_WO - Enhancement Spot for Archiving Warehouse Orders
/SCWM/EX_ARCH_WME_WO Intended for archiving your own Z tables together with the warehouse order tables.

Composite Enhancement Spot /SCWM/ESC_ASR

  • /SCWM/ES_ASR - ASR Interface
/SCWM/EX_ASR_ERROR_IN Intended for changing the error messages that appear as a result of processing an inbound IDoc.
/SCWM/EX_ASR_WMBBIN_IN If EWM is connected to an external system, this BAdI can be used to process the inbound IDoc that blocks a storage bin
/SCWM/EX_ASR_WMCATO_IN If EWM is connected to an external system, this BAdI can be used to process the inbound IDoc that cancels a warehouse task.
/SCWM/EX_ASR_WMCATO_OUT If EWM is connected to an external system, this BAdI can be used to process the outbound IDoc that sends the warehouse task cancellation event to the external system.
/SCWM/EX_ASR_WMPIHU_IN If EWM is connected to an external system, this BAdI can be used to process the inbound IDoc that creates a pick HU for a warehouse order.
/SCWM/EX_ASR_WMPIHU_OUT If EWM is connected to an external system, this BAdI can be used to process the outbound IDoc that sends the pick HU creation event to the external system.
/SCWM/EX_ASR_WMRREF_OUT If EWM is connected to an external system, this BAdI can be used to process the outbound IDoc that sends the result of a wave release to the external system.
/SCWM/EX_ASR_WMSUMO_IN If EWM is connected to an external system, this BAdI can be used to process the inbound IDoc that moves an HU.
/SCWM/EX_ASR_WMTOCO_IN If EWM is connected to an external system, this BAdI can be used to process the inbound IDoc that confirms a warehouse task.
/SCWM/EX_ASR_WMTORD_IN If EWM is connected to an external system, this BAdI can be used to process the inbound IDoc that creates a warehouse task.
/SCWM/EX_ASR_WMTORD_OUT If EWM is connected to an external system, this BAdI can be used to process the outbound IDoc that is sent on the warehouse task creation event in EWM.

Composite Enhancement Spot /SCWM/ESC_BASIS

  • /SCWM/ES_BASIS           Enhancement Spot: EWM Basis
/SCWM/EX_BASIS_CHECK_UOM The BAdI is active by default; I did not find where it is called.
/SCWM/EX_BASIS_SERID_CONV The BAdI is intended for converting a serial number when it is displayed on the screen. The database record itself is not changed.
/SCWM/EX_BASIS_SH_ENTITLED The BAdI is used to call your own search help when selecting the party entitled to dispose.

Composite Enhancement Spot /SCWM/ESC_CD

  • /SCWM/ESC_CD_OPP   Opportunistic Cross-Docking
/SCWM/EX_CD_OPP_INBOUND The BAdI is active by default – it is the implementation of opportunistic inbound cross-docking itself.
/SCWM/EX_CD_OPP_OUTBOUND The BAdI is active by default – it is the implementation of opportunistic outbound cross-docking itself.

Composite Enhancement Spot /SCWM/ESC_CHM

  • /SCWM/ES_CHM
/SCWM/EX_CHM_ADAPTER_CHK A BAdI for adding your own checks to the check monitor; it works together with the next BAdI. All the standard checks are implemented as BAdI implementations.
/SCWM/EX_CHM_ADAPTER_SEL A BAdI for adding your own selections in the check monitor.

Composite Enhancement Spot /SCWM/ESC_CORE

  • /SCWM/ES_CARTONIZATION    Cartonization Planning
/SCWM/EX_CAP_ALGORITHM The BAdI is used to write the algorithm for creating planned shipping HUs. By default the BAdI implementation with the minimum number of HUs algorithm is active.  This BAdI is used together with /SCWM/EX_CAP_PROCESS.
/SCWM/EX_CAP_CUST_PROCESS The BAdI is used to change the cartonization process profile that the system determined according to the SPRO settings.
/SCWM/EX_CAP_PROCESS

This BAdI is called before and after the cartonization algorithm is determined in the BAdI /SCWM/EX_CAP_ALGORITHM. It consists of two methods:

GROUP_ITEMS – used to regroup the order items that have to be packed together into an HU.

ADJUST_CAP_RESULT – called after the system has planned the planned HUs. In this BAdI the result of the system's work can be changed, up to completely reshuffling the HUs in your own way.

  • /SCWM/ES_CORE_AA   Storage Bin Sorting
/SCWM/EX_CORE_AA_SORT This BAdI is used to change the storage bin sorting that the system generated according to the standard settings.
  • /SCWM/ES_CORE_CO   Confirmation: Warehouse Task
/SCWM/EX_CORE_CO_AQUA_UPD  
/SCWM/EX_CORE_CO_CHECK_CONF The BAdI is called when a warehouse task is confirmed. In the BAdI you can run your own checks and stop the confirmation of the task.
/SCWM/EX_CORE_CO_HU_SAVE The BAdI is called when a warehouse task is confirmed. In the BAdI you can change the data of the source or destination HU, including nested ones, at the moment of confirmation. According to the SAP help, only customer data may be changed.
/SCWM/EX_CORE_CO_IMPORT

The BAdI is called when a warehouse task is confirmed. In this BAdI you can change the data of the warehouse task being confirmed. Keep in mind, though, that not all data can be changed. The data changed in the BAdI is then checked in /SCWM/LL03BF0M- quittierung_pruefen

/SCWM/EX_CORE_CO_POST The BAdI is called when a warehouse task is confirmed, but at the point where the task data can no longer be changed and all the checks have passed. It is used to trigger your own follow-on operations.
/SCWM/EX_CORE_CO_QUAN_UPD

The BAdI is called when a warehouse task is confirmed. With the BAdI method SOURCE_CHANGE you can change the alternative unit of measure for the source quant and the customer fields in the task structure - CS_QUAN_CUST

With the BAdI method DESTINATION_CHANGE you can also change the data of the destination quant, namely the AUoM, Country of Origin, GRD, SLED and CS_QUAN_CUST.

/SCWM/EX_CORE_CO_SN_FORCE This BAdI is called when a product warehouse task is confirmed. It is used to force the serial number entry window to be called when the task is confirmed.
/SCWM/EX_CORE_CO_UNP_OUTHU This BAdI is called when an HU task is confirmed. It is used to specify how many HU levels are to be unpacked when the task is confirmed (there is a sample implementation)
  • /SCWM/ES_CORE_CONS             Consolidation Group
/SCWM/EX_CORE_CONS This BAdI is called when the consolidation group is determined and is used to change it.
  • /SCWM/ES_CORE_CR   Create Warehouse Task
/SCWM/EX_CORE_CR_ABORT The BAdI is called when a warehouse task is created. In the BAdI you can run your own checks and as a result stop the creation of the task.
/SCWM/EX_CORE_CR_AQUA_DATA  
/SCWM/EX_CORE_CR_DEL_ITM This BAdI is called when temporarily created warehouse tasks are deleted. It is used to prevent such a deletion.
/SCWM/EX_CORE_CR_INT_CR The BAdI is called when a warehouse task is created. It is used to update your own customer data in the warehouse task (/SCWM/INCL_EEW_S_ORDIM) at creation time.
/SCWM/EX_CORE_CR_POST The BAdI is called when a warehouse task is created, at the point where changes are no longer possible and all the checks have passed. It is used to trigger your own follow-on actions based on the tasks that were created.
/SCWM/EX_CORE_CR_SCRAP_ZERO  
/SCWM/EX_CORE_CR_SN_COMBINE  
/SCWM/EX_CORE_CR_STOCK_ID This BAdI is called when a warehouse task is created, at the moment the stock identification (SI) is assigned. This BAdI is used to apply your own algorithm for building the stock identification number.
/SCWM/EX_CORE_CR_UPD_TAB_DI This BAdI is called when temporarily created warehouse tasks are deleted. It is used to change the customer data in the task structure (/SCWM/INCL_EEW_S_ORDIM)
  • /SCWM/ES_CORE_CW  Influence the Catch Weight Functions
/SCWM/EX_CORE_CW_LABEL_PRNT This BAdI is called when the valuation quantity for a catch weight product is entered, and is used to trigger the printing of a label with the quantity. There is an example of its use.
  • /SCWM/ES_CORE_GM Goods Movement Postings
/SCWM/EX_CORE_GM_CAT This BAdI is called when goods are put away into a storage type. It is used to determine the stock type of the goods being put away when the standard stock type determination settings do not fit.
/SCWM/EX_CORE_GM_STOCK This BAdI is called when a goods movement is posted (GM). It is used for your own checks and, if need be, to stop the posting.
/SCWM/EX_CORE_GM_UPDATE This BAdI is called when a goods movement is posted, but at the point where all the checks have passed and changes are no longer possible. It is used to trigger your own follow-on operations resulting from the posting.
  • /SCWM/ES_CORE_PROD             Production Supply
/SCWM/EX_CORE_PROD_STOCK The BAdI is called when goods issue from a PSA is posted. It is used to sort and filter the quants that may be issued. There is a fallback class. 
  • /SCWM/ES_CORE_PTS Putaway Strategies
/SCWM/EX_CORE_PTS_BTSQ The BAdI is called when a putaway warehouse task is created. It is used to change the storage bin type search sequence that was determined according to the standard settings.
/SCWM/EX_CORE_PTS_CAPACHECK The BAdI is called when a putaway warehouse task is created, in various situations that are listed in detail in the BAdI documentation.  Two methods are called:
  • CUSTOM_CAPA_CHECK – used to determine whether the destination bin has passed the capacity check. There is an inactive implementation.
  • CANCEL_BUFFERED_WT -
/SCWM/EX_CORE_PTS_DET_PRIO The BAdI is called when a putaway warehouse task is created. It is used to change the priority of the storage type, storage section or bin type that was determined according to the standard SPRO settings.
/SCWM/EX_CORE_PTS_EMPTY_BIN

There is a fallback class and a sample implementation.

The BAdI is called when a putaway warehouse task is created for an empty bin. This BAdI has two methods:

  • DELETE_EMPTY_BIN_BUFFER
  • DETERMINE_EMPTY_BINS – the method is called before the standard empty bin search procedure. In this method you can determine empty bins by your own logic and skip the standard one.
/SCWM/EX_CORE_PTS_FILT_SORT

There is a sample implementation.

The BAdI is called when a putaway warehouse task is created. In this BAdI you can filter and sort the available bins that the system determined according to the standard SPRO settings.

/SCWM/EX_CORE_PTS_MD_ADDBIN

There is a fallback class and a sample implementation.

The BAdI is called when a putaway warehouse task is created, at the moment the destination bin is determined for the addition to existing stock strategy. It is used to determine the bin the stock can be added to.

/SCWM/EX_CORE_PTS_MIX The BAdI is called when a putaway warehouse task is created. It consists of two methods:
  • MIX_ALLOWED – used to allow mixing in a bin even when the settings forbid it.
  • MIX_CHECK - conversely, forbids mixing in a bin even when the settings allow it.
/SCWM/EX_CORE_PTS_NBIN_BLK The BAdI is called when a putaway warehouse task is created for a bulk storage type. It is used for:
  • Determining the destination bin
  • Stopping the creation of the putaway warehouse task
  • Determining the destination HU
  • Filling customer data in the warehouse task
/SCWM/EX_CORE_PTS_NBIN_NRM The BAdI is called when a putaway warehouse task is created for a standard storage type. It is used for:
  • Determining the destination bin
  • Stopping the creation of the putaway warehouse task
  • Determining the destination HU
  • Filling customer data in the warehouse task
/SCWM/EX_CORE_PTS_NBIN_PAL The BAdI is called when a putaway warehouse task is created for a pallet storage type. It is used for:
  • Determining the destination bin
  • Stopping the creation of the putaway warehouse task
  • Determining the destination HU
  • Filling customer data in the warehouse task
/SCWM/EX_CORE_PTS_NEAR_FB

The BAdI is called when a putaway warehouse task is created for a storage type with fixed bins using the nearest fixed bin strategy.

This BAdI is used to determine the list of fixed bins by your own logic.

/SCWM/EX_CORE_PTS_SECSQ

There is a sample implementation.

The BAdI is called when a putaway warehouse task is created, at the moment the destination storage section is determined. It is used to determine the storage section search sequence by your own logic.

/SCWM/EX_CORE_PTS_SMAQ

There is a fallback class.

The BAdI is called when a putaway warehouse task is created. There are two methods:

  • DECIDE_SMAQ_USE – in this BAdI you can define when the check of the maximum product quantity in a storage type or storage type group has to be performed.
  • CHECK_SMAQ_LGTYPG
/SCWM/EX_CORE_PTS_SRTSQ The BAdI is called when a putaway warehouse task is created. It is used to change the putaway sequence (EVALPOS) of each bin that the system determined according to the standard settings.
 /SCWM/EX_CORE_PTS_TYPSQ The BAdI is called when a putaway warehouse task is created, at the moment the destination storage type is determined. It is used to change the storage type search sequence and the putaway rule that the system determined according to the standard settings.
/SCWM/EX_CORE_PTS_UPD_TAB

This BAdI is called when a putaway warehouse task is created, at the moment a product is assigned to a new fixed bin.

Used to trigger your own follow-on operations.

/SCWM/EX_CORE_PTS_VERIF This BAdI is called when a putaway warehouse task is created for a specific bin. In this BAdI you can check whether putaway into this bin is possible and forbid it if necessary.
  • /SCWM/ES_CORE_RMS              Stock Removal Strategy
The order in which the BAdIs are called from the function module /SCWM/REM_BIN_DET_INT:
  1. /SCWM/EX_CORE_RMS_NEGATIVE (called right at the beginning if the source bin was specified in advance when the warehouse task was created)
  2. /SCWM/EX_CORE_RMS_QCLA_STR
  3. /SCWM/EX_CORE_RMS_STRATEGY
  4. /SCWM/EX_CORE_RMS_DELETE
  5. /SCWM/EX_CORE_RMS_DETERMINE
  6. /SCWM/EX_CORE_RMS_NEGATIVE (called at this point if the source bin is determined by the system through the stock removal strategy)
  7. /SCWM/EX_CORE_RMS_QUANTITY
  8. /SCWM/EX_CORE_RMS_HUTYP
  9. /SCWM/EX_CORE_RMS_HU_QUAN
  10. /SCWM/EX_CORE_RMS_VERIFY- VERIFY
  11. /SCWM/EX_CORE_RMS_VERIFY- ADJ_SRC_BIN_CHECK
  12. /SCWM/EX_CORE_RMS_OPUNIT (called after the function module /SCWM/REM_BIN_DET_INT )
/SCWM/EX_CORE_RMS_QCLA_STR The BAdI is called when a stock removal warehouse task is created. In this BAdI the quantity classification of the requested stock removal quantity, determined according to the standard system settings, is changed or determined. This field influences the choice of the storage type search sequence.
/SCWM/EX_CORE_RMS_STRATEGY The BAdI is called when a stock removal warehouse task is created. In this BAdI you can change the storage type search sequence that the system determined according to the standard settings.
/SCWM/EX_CORE_RMS_DELETE

Called before the BAdI /SCWM/EX_CORE_RMS_DETERMINE

in FORM 300 /SCWM/LREM_BIN_DETF13-QMAT_CREATE, for each storage type in which an available quant is determined. If you return X, all the quants of this storage type are removed from the internal structure CT_QMAT, but this happens after the quantity for the current requirement has already been reserved. Any further effect on the process is unclear.

/SCWM/EX_CORE_RMS_DETERMINE

This BAdI is called when available stock is searched for in goods issue operations. It is used to sort and filter the quants that the system determined according to the standard system settings. There are sample implementations. There is a fallback class (for MFS)
/SCWM/EX_CORE_RMS_NEGATIVE

The BAdI is called when a stock removal warehouse task is created, after the source bin has already been determined by the system. It is used to allow the use of negative stock.

The customer data in the warehouse task structure can also be changed.

/SCWM/EX_CORE_RMS_QUANTITY The BAdI is called when a stock removal warehouse task is created, after the source bin, the requested quantity rounded according to the standard settings, the alternative unit of measure and the HU type have already been determined. This BAdI is intended primarily for changing the quantity that will be picked from the bin (cs_ltap-vsolm), but alongside that you can also change the alternative unit of measure (cs_ltap-altme) and the HU type in the task (CS_LTAP-LETYP).
/SCWM/EX_CORE_RMS_HUTYP The BAdI is called when a stock removal warehouse task is created. It is used to change the HU type in the warehouse task (cs_ltap-letyp). The HU type is normally determined from the packaging specification by the function module /SCWM/HUTYP_QUANTITY_DET.
/SCWM/EX_CORE_RMS_HU_QUAN This BAdI is called when a stock removal warehouse task is created, after the top-level source HU has already been determined. In this BAdI you can:
  • Change the quantity picked from the HU
  • Change the alternative unit of measure (cs_ltap-altme)
  • Skip a quant
  • Change the rounding type of the warehouse task
  • Change the customer fields in the warehouse task structure
/SCWM/EX_CORE_RMS_VERIFY The BAdI is called when a warehouse task is created in goods issue processes. Two methods:
  • VERIFY – a check of the source storage bin determined by the system. If it does not meet the requirements, an error can be returned and the system then skips this bin and takes the next one from the table of available quants.
  • ADJ_SRC_BIN_CHECK – called  after the verify method, and only for rough bin determination. It is used to avoid checking bins that are blocked for stock removal or because of a physical inventory.
/SCWM/EX_CORE_RMS_OPUNIT The BAdI is called when a stock removal warehouse task is created, after all the source data has already been determined. It is used to change the alternative unit of measure of the warehouse task being created (cs_ltap-altme).  
  • /SCWM/ES_CORE_SB    Process Storage Bins
/SCWM/EX_CORE_SB_CREATE_ADD The BAdI is called when storage bins are created. It is used to trigger your own follow-on operations.
/SCWM/EX_CORE_SB_DELETE_ADD The BAdI is called when storage bins are deleted. It is used to trigger your own follow-on operations.
/SCWM/EX_CORE_SB_FB_BLOCK Can only be implemented inside SAP.
/SCWM/EX_CORE_SB_FB_EEW Can only be implemented inside SAP.
/SCWM/EX_CORE_SB_UPDATE_ADD The BAdI is called when storage bins are changed. It is used to trigger your own follow-on operations.
/SCWM/EX_CORE_SB_VERIFY This BAdI is used to fill the verification field.   It is called from the report /SCWM/RLVERIFY (transaction /SCWM/LX45)
  • /SCWM/ES_CORE_TR   Transportation-Relevant HU Changes
/SCWM/EX_CORE_TR

The BAdI is active by default. There are three methods:

DOC_ASSIG_CHANGE – the method is called only from /SCWM/GM_POST when goods are picked into an HU or picking into an HU is cancelled. The system then updates the assignment of the HU to the TU accordingly.

HU_CONTENT_CHANGED – this method updates the assignment of the HU to the TU at the moment the content of the HU changes.

HU_LOADING – this method is empty; it is triggered when an HU is loaded or unloaded.

  • /SCWM/ES_CORE_TW_CND      Transit Warehousing - Condition Technique
/SCWM/EX_CORE_TW_ADJ_CTLIST This BAdI is called only for transit warehousing, when the destination bin for an HU is determined. In this BAdI you can change the determination procedure that was determined according to the standard settings.
  • /SCWM/ES_CORE_TW_PTS        Transit Warehousing - Putaway Strategies
/SCWM/EX_CORE_TW_CONSGRP There is a fallback class. It is used to determine the consolidation group for transit HUs.
/SCWM/EX_CORE_TW_DET_DEST This BAdI is used to change the sequence of the destination storage bins determined by the system for transit HUs.
/SCWM/EX_CORE_TW_ENRICH This BAdI is used to change the data of the so-calledcommunication structure, which is used when the destination bin for a transit HU is determined. The structure is called CS_TWP_COM_I and contains a huge, exhaustive amount of information about that transit HU.
  • /SCWM/ES_CORE_WRKL             Workload
/SCWM/EX_CORE_WRKL_WT_CR The BAdI is called when a warehouse task is created and is used to change the field «Planned completion date for the process step», which is passed into the planned workload table /SCWM/WRKL.
  • /SCWM/ES_CORE_WT_RT          Extract Time Calculation in the Warehouse Document
/SCWM/EX_CORE_WT_RT This BAdI is called when a warehouse task is created and is used to change the field «Extract Time Determination», which is calculated from the standard settings in SPRO and written into the warehouse task tables /scwm/ordim_*. This field is used when planning the warehouse workload; it means the planned time needed to prepare for executing the warehouse task.