
Dear colleagues
This article describes the extensibility potential of the central EWM application - EWM Monitor, available from SAP S/4HANA 2023 FPS2 and brings some more technical details in addition to the blog post link EWM Warehouse Management Monitor – Enhancements with SAP S/4HANA 2023 FPS2. The target audience is EWM consultants, developers and solution architects.
Let's imagine, we have a request to extend the inbound node with custom selection fields e.g planned unloading date, currently the Warehouse Management monitor provides selection screen extensibility only for a few standard nodes (via Dynamic Selection), but most standard nodes can only be extended by copying them to custom nodes. From SAP S/4HANA 2023 FPS2 there is a possibility to extended standard nodes with custom fields using BADI: /SCWM/EX_MON_CUSTOM_SELECT, enhancement spot /SCWM/ES_MONITOR_FRAMEWORK.
Figure 1 - Standard Inbound Delivery selection screen with customer specific Screen Enhancement
Using this BADI you can easily add custom fields Supported nodes (as of OP2023 FPS2):
Node/FM | Description in Monitor |
Inbound Delivery | |
/SCWM/WHRHEAD_MON | Inbound Delivery |
/SCWM/WHRITEM_MON | Inbound delivery Item |
/SCWM/WHRHDR_INB_WO_MON | Warehouse Order |
/SCWM/WHRHDR_INB_TO_MON | Warehouse Task |
/SCWM/WHRHEAD_INB_HU_MON | Handling Unit |
Outbound Delivery Order | |
/SCWM/WHRHEAD_MON_OUT | Outbound Delivery |
/SCWM/WHRITEM_MON_OUT | Outbound delivery Item |
/SCWM/WHRHDR_OUT_WO_MON | Warehouse Order |
/SCWM/WHRHDR_OUT_TO_MON | Warehouse Task |
/SCWM/WHRHEAD_OUT_HU_MON | Handling Unit |
/SCWM/WHRHDR_OUT_WAVE_MON | Wave (no EEW support, only ODO Header fields possible) |
Production Material Request | |
/SCWM/HEAD_PCR | PMR Header |
/SCWM/ITEM_PCR | PMR Items |
/SCWM/PCRHDR_WO_MON | Warehouse Order |
/SCWM/PCRHDR_TO_MON | Warehouse Task |
Documents | |
/SCWM/HUMO_HEADER | Handling Unit (no BAdI support for deleted/dispatched HU selection) |
/SCWM/HEAD_PC | Posting Change Header |
/SCWM/ITEM_PC | Posting Change Items |
/SCWM/HEAD_ST | Stock Transfer Header |
/SCWM/ITEM_ST | Stock Transfer Items |
Stock and Bin | |
/SCWM/HU_OVERVIEW_MON | Handling Unit |
/SCWM/HU_PER_BIN_MON | Handling Unit |
BADI name: /SCWM/EX_MON_CUSTOM_SELECT.
Enhancement spot: /SCWM/ES_MONITOR_FRAMEWORK.
Filters:
Screen enhancements contain information about the supported nodes, FM's names etc.
Figure 2 -Screen enhancements information
There is a BADI example implementation available for each monitor node and its sub-nodes. These examples provide all the necessary details to help you implement the BADI correctly.
It is highly recommended to separate the BADI implementations for different Monitor nodes, for example: Inbound delivery node and its sub nodes would have BADI implementation 1 and Outbound delivery node and its sub nodes would have BADI implementation 2. The Implementation logic would be separated by filters.
Firstly, EEW structures should be extended with your custom field names, for delivery you have to defined logical field names in customising.
Filters combinations should be created:
Figure 3 - Filters combinations for Inbound Node.
The next step would be custom selection screen creation using custom report. Code sample could be found in /SCWM/CL_EI_MON_CUST_SEL_INB example implementation class, method SCREEN_ENHANCEMENT_EXAMPLE.
Small remark: All selection screens must be defined as sub screen, as only sub screen areas could be replaced.For standard execution without BADI, sub screen area 8999 (representing the dummy sub screen area without any fields) would be called, when the BADI is implemented, 8999 sub screen area would be replaced with custom sub screen area that was defined in Screen Enhancements tab of BADI implementation.
Figure 4 - Screen Enhancements tab example for warehouse Inbound node implementation
Once this part would be done, you can start with class implementation.
Before methods implementation, class range types for your custom fields should be defined for correct variant execution.
Figure 5 - example of range types for custom fields.
Based on these types instance attributes should be created.
Figure 6 - example of instance attributes for custom fields.
After this part, methods GET_INSTANCE and CONSTRUCTOR must be created and implemented, as our BADI implementation class would be called in report with custom sub screen areas.
SET_SELECTION_PARAMETERS and GET_SELECTION_PARAMETERS must be created and implemented for correct variant execution and they would be called in report with custom sub screen areas.
Figure 7 - example of parameters for SET_SELECTION_PARAMETERS method.
Figure 8 - example of parameters for GET_SELECTION_PARAMETERS method.
BADI implementation class methods:
ENHANCE_FIELD_MAPPING - Method is used to provide correct mapping between custom fields and standard fields.
Parameters information:
GET_SCREEN_PROGRAM - Method is used to get custom program name to connect standard selection screen and custom selection screen.
Parameters information:
GET_VARIANT_DATA - Method is used to get variant data information, as there is no possibility to dynamically extend standard variant behavior.
Parameters information:
SET_VARIANT_DATA - Method is used to set variant data information, as there is no possibility to dynamically extend standard variant behavior.
Parameters information:
PRE_SELECTION - Method is used for only HU(currently) preselection. As there is no possibility to get information using EEW fields during standard HU selection, this method could be used to preselect values based on dynamic where clause or importing range tab. This method MUST be implemented for correct HU node execution.
Parameters information:
POST_FILTERING - Method is used for filtering after standard selection is done.
Parameters information:
GET_VARIANT_DATA_BATCH - Method is used to get variant data during batch execution.
Parameters:
Methods implementations could be found in the BADI example implementation class.
In part 2, I will describe in details with code sample, how to implement the BADI.
Thank you for your time!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
8 | |
5 | |
5 | |
5 | |
2 | |
2 | |
1 | |
1 | |
1 | |
1 |