SAP EWM Blog

In this article I have put together the list and a short description of the BAdIs contained in the Composite Enhancement Spot /SCWM/ESC_DLV. They are used in various checks, changes, creations and deletions of warehouse requests (deliveries).

  • /SCWM/ES_DLV_ACT    BAdI in Actions

/SCWM/EX_DLV_ACT_ROUTE_RELEASE

The BAdI is called when a route is released from a delivery. By default the logic of the active implementation /SCWM/EI_DLV_ACT_ROUTE_REL is used

The BAdI has two methods:

VALIDATE_ACTION – called before the release itself

EXECUTE_ACTION – called during the release, once the checks have passed.

  • /SCWM/ES_DLV_APN   Determination of the Product Number from the Entered Product Number

/SCWM/EX_DLV_APN

This BAdI is called when a delivery item is created. It is used to determine the product from the value of the «Entered product» field.

  • /SCWM/ES_DLV_BIF     Processing of Inbound/Outbound Messages: XI Messages and Web Services

/SCWM/EX_DLV_BIF_ASN_OUT

The BAdI is called before an ASN is sent to XI. In this BAdI the data being sent can be changed.

/SCWM/EX_DLV_BIF_DINFO_OUT

The BAdI is called before a delivery is sent to XI. In this BAdI the data being sent can be changed.

/SCWM/EX_DLV_BIF_QR_ID

The BAdI is called when a query about an inbound delivery is sent or received. In this BAdI the data being received or sent can be changed.

/SCWM/EX_DLV_BIF_QR_OD

The BAdI is called when a query about an outbound delivery is sent or received. In this BAdI the data being received or sent can be changed.

  • /SCWM/ES_DLV_CWM

/SCWM/EX_DLV_CWM_PC_SPLIT

This BAdI was apparently introduced for technical purposes, since it has no importing parameters at all. The BAdI refers to note 2140463. There is a fallback class method that is called by default.

  • /SCWM/ES_DLV_DET    Delivery Determinations

/SCWM/EX_DLV_AVAIL_CHECK

The BAdI is called when a direct outbound delivery is created in EWM, or when a delivery is created for the kit-to-stock process. There are two methods:

  • BEFORE_AVAILABILITY_CHECK – called during the availability check (before the standard logic runs)
  • AFTER_AVAILABILITY_CHECK – called during the availability check (after the standard logic has run)

/SCWM/EX_DLV_DET_ADDMEAS

The BAdI is used to change the weight or volume data calculated by the standard logic at delivery header or item level. Two methods are provided for this:

  • CHANGE_HEADER_WEIGHT_VOLUME
  • CHANGE_ITEM_WEIGHT_VOLUME

/SCWM/EX_DLV_DET_AFTER_CHANGE

A BAdI called after every change to the delivery header or item data (for example when a field is entered in the user interface).

/SCWM/EX_DLV_DET_AFTER_SAVE

A BAdI called after the changed delivery data has been saved (the delivery data can no longer be changed)

/SCWM/EX_DLV_DET_AT_SAVE

A BAdI called at the moment the delivery is saved (the delivery data can still be changed)

/SCWM/EX_DLV_DET_GM_BIN

A BAdI called when a delivery is changed. It is used to determine the goods movement storage bin for deliveries that are not relevant for picking or putaway.

/SCWM/EX_DLV_DET_HIER_CORR

A BAdI called when the quantities are changed in delivery items that have a hierarchy (subordinate items). There are two methods:

BEFORE_CORRELATE_HIERARCHY – called before the quantities are changed

AFTER_CORRELATE_HIERARCHY – called after the quantities are changed

/SCWM/EX_DLV_DET_LOAD

The BAdI is called every time delivery data is read. You can make changes to the data that was read (they are not written to the database).

There is an active standard implementation.

/SCWM/EX_DLV_DET_POD_REL

A BAdI used to set the proof of delivery relevance for deliveries that are created directly in SAP EWM.

/SCWM/EX_DLV_DET_PROCTYPE

The BAdI is used to change the warehouse process type in delivery items. It is called when a delivery is created or changed.

/SCWM/EX_DLV_DET_REJ

The BAdI is called at the beginning of the method /SCWM/CL_DLV_PRD_DET-DET_PSC and is used to set the DWM status.

Here is the official comment from the code:

* This determination method checks, if a scheduled background job
* exists for an inbound item to set the status DWM from planned to
* finished.
*
* The status DWM delays the setting of the status DCO (complete) of
* the delivery, so that the user still has some time to correct the
* quantity after the status DWA (Warehouse activity) has been set to
* finished.
* The delay time (in seconds)is customizable (Table /SCWM/TCPDELAY).
*
* In this table there is also a tolerance time in seconds.
* The scheduled job will also set the status DWM for each item of
* the same inbound delivery, which will process this determination
* method within this tolerance time, counted from the first item
* processing this method.

/SCWM/EX_DLV_DET_ROUTE

The BAdI is called during automatic route determination or route checking, and also when the route functions are used from the delivery user interface: «Check», «Assign», «Redetermine».

There are five methods:

  • BEFORE_RG_CALL – called before the standard route determination logic runs
  • AFTER_RG_CALL – called after the standard logic has run.
  • ODR_SPLIT_GROUPING – called when the split of an ODR into several ODOs is being planned because different routes were determined for the items.
  • AFTER_DLV_UPDATE – called after route-related data has been changed. Used to change delivery data that depended on the route data.
  • CHANGE_RG_MODE – called after the standard routing guide mode settings have been read from SPRO, and used to change them.
  • /SCWM/ES_DLV_DG     Dangerous Goods Data for the Delivery

/SCWM/EX_DLV_DG_AGGR

The BAdI is used to display aggregated information about dangerous goods in some transactions. Two methods are used:

  • AGGREGATE_DG_DATA – aggregation of the data from the items
  • DETERMINE_WAREHOUSE_RELEVANCE – determination of the most dangerous material of them all.

/SCWM/EX_DLV_DG_DATA_PRINT

Used to print the dangerous goods note. There is a standard active implementation.

  • /SCWM/ES_DLV_GM    Goods Movements for the Delivery

/SCWM/EX_DLV_GM

The BAdI is called during goods movement postings for the delivery and can be used to stop the posting. There is a fallback class. The BAdI has three methods:

  • CHECK_DOCUMENT_CANCEL – called before a goods movement is reversed.
  • CHECK_DOCUMENT – called before a goods movement is posted
  • CHECK_GR_TYPE – comment from the code:

* Goods receipt can be done in different kind of processes.
* In the customer implementation the return value can be changed as the
* following example showes it.
*
* Type 1: Goods receipt will be done in one step, one GR document is created /BASIC SETTING)
* Type 2: Goods receipt will be done HU by HU, separated GR document will
* be created pro HU to be able to perform GRR on HU level later on.
*
* Usable constants:
* /scwm/if_dl_c~sc_gm_gr_compl -> post everithing in one GR document
* /scwm/if_dl_c~sc_gm_gr_by_hu -> post by HU, create sparated GM documents

/SCWM/EX_DLV_GM_STOCK_ATTR

The BAdI is called when a delivery is created directly in EWM and is used  to determine the owner, the stock type and the stock usage of the delivery items

  • /SCWM/ES_DLV_ORD_RED
/SCWM/EX_DLV_ORD_RED_WT_SORT

This BAdI is called when ERP sends a request to reduce the quantity in an outbound delivery order while several pick warehouse tasks exist and the system has to decide which of them to cancel. There is a fallback class /SCWM/CL_EI_DLV_ORD_RED_WT_SRT, in which the default sorting is by the quantity in the warehouse task, from smallest to largest. Accordingly, this BAdI lets you re-sort the tasks according to your own logic.

  • /SCWM/ES_DLV_PRINT Supply Additional Data for Printing

/SCWM/EX_DLV_PRINT_DET_FORM

A BAdI for determining the form used when printing the delivery note for a delivery.

/SCWM/EX_DLV_PRINT_PROFILE

A BAdI for determining the print profile of the forms for a delivery

/SCWM/EX_DLV_PRINT_SCRAP_DATA

A BAdI for determining additional data when printing the scrapping form.

/SCWM/EX_DLV_PRINT_SCRAP_LANGU

A BAdI for determining the language when printing the scrapping form.

  • /SCWM/ES_DLV_TOWHR            Warehouse Task for the Warehouse Request

/SCWM/EX_DLV_TOWHR_CREA_PPF

The BAdI is called when a putaway task is created for an inbound delivery by PPF. It lets you control the putaway logic.

/SCWM/EX_DLV_TOWHR_PAL

The BAdI is used to determine the palletisation data for the goods of an inbound delivery not according to the packaging specification but according to your own strategy.

/SCWM/EX_DLV_TOWHR_PD_EXEC

The BAdI is called during picking when a pick denial occurs, and is used to prevent it.

/SCWM/EX_DLV_TOWHR_PROCTY

The BAdI is called when an HU warehouse task is created for an inbound delivery, or for an outbound delivery in transportation cross-docking. It is used to determine the warehouse process type of that task.

/SCWM/EX_DLV_TOWHR_PTDL_DET

The BAdI is called when a putaway warehouse task is created for an inbound delivery, and is used to override the putaway delay time (if it is active).

/SCWM/EX_DLV_TOWHR_PTDL_JOB

If the putaway delay is active for inbound delivery putaway, this BAdI lets you adjust  the list of tasks that the job has scheduled.

/SCWM/EX_DLV_TOWHR_PTO_CREA

The BAdI is called when a product warehouse task is created for a delivery, and is used to pass additional delivery data into the warehouse task structure (/SCWM/INCL_EEW_S_WT_CREA)

  • /SCWM/ES_DLV_UI       BAdI for Enhancements in the Delivery UI

/SCWM/EX_DLV_ERP_CALL

The BAdI determines how an inbound delivery or one of its items is created manually in SAP EWM. By default the user is taken into SAP ERP, into transaction VL60. This BAdI lets you switch that off, so that creation happens locally, as it does with outbound deliveries.

/SCWM/EX_DLV_ERP_CALL_CTRL

The BAdI is called when an inbound delivery or one of its items is created manually in SAP EWM   and is used to substitute the data that is sent before transaction VL60 is called.

/SCWM/EX_DLV_SPLIT_QUANT_DISTR

The BAdI is called when the quantity of a delivery item is distributed from the main item to the split items from the delivery transaction interface.  It is used to control how the quantity is distributed between the split items.

  • /SCWM/ES_DLV_VAL    Checks During the Delivery

/SCWM/EX_DLV_VAL_ACC

The BAdI is called when a delivery is validated (when it is changed). It is used to run additional checks when validating the account assignments of delivery items.

/SCWM/EX_DLV_VAL_ACTION

The BAdI is called during create, delete and activate operations. It is used for additional checks.

/SCWM/EX_DLV_VAL_DIRODO

The BAdI is called during the standard validation of direct outbound deliveries. It is used for additional checks.

/SCWM/EX_DLV_VAL_FORCE_SAVE

The BAdI is called when a delivery is saved. If the delivery validation produced errors, the system does not allow the delivery to be saved. This BAdI makes it possible to save the delivery even when it has failed validation.

/SCWM/EX_DLV_VAL_PACKSP_EXIST

The BAdI is called when a delivery is created or changed. It is used to check that a packaging specification exists for every delivery item.

/SCWM/EX_DLV_VAL_SAVE

The BAdI is called when a delivery is saved. It is used to implement additional checks and to stop the save.

/SCWM/EX_DLV_VAL_VALIDATE

The BAdI is called when a delivery is changed or checked manually. It is used to implement additional checks.

  • /SCWM/ES_GRWORK   Expected Goods Receipt Workload

/SCWM/EX_GRWORK_ENH

The BAdI is used to fill your own fields in the resulting workload table in transaction /SCWM/GRWORK

/SCWM/EX_GRWORK_HU_CALC

This BAdI is used to determine the number of HUs in inbound deliveries or expected goods receipts  when the workload is calculated in transaction /SCWM/GRWORK

/SCWM/EX_GRWORK_HU_READ

The BAdI is used to switch off the reading of HU data in inbound deliveries when the workload is determined.

  • /SCWM/ES_MEDI           Material Distribution

/SCWM/EX_MEDI_AQTY

The BAdI is called in flow-through cross-docking processes at the moment the inbound delivery is adjusted. It is used to determine the adjustment quantity in the corresponding outbound delivery.

/SCWM/EX_MEDI_AQTY_CHECK

There is no documentation for this BAdI. It was delivered with note 1879304.

/SCWM/EX_MEDI_MAPPING

Used to prevent deliveries that have not yet been created in EWM from being selected when inbound and outbound deliveries are mapped. More detailed information is in note 2285015.