SAP MDG · DATA MODEL UI
How do I extend the SAP MDG Material user interface for additional fields, custom data, and flex entities?
Extend MDG Material either by enhancing data model MM with generated structures and SMT mapping, or by using feeder/SPI/transient/flex patterns for data outside MM. For permanent MDG-only data, create a flex entity, generate the required structures, check metadata in MDB, and clear MDG metadata buffers after transport or model changes.
Extend MDG Material either by enhancing data model MM with generated structures and SMT mapping, or by using feeder/SPI/transient/flex patterns for data outside MM. For permanent MDG-only data, create a flex entity, generate the required structures, check metadata in MDB, and clear MDG metadata buffers after transport or model changes.
For additional data in SAP MDG Material, first decide whether the data belongs in model MM or must stay outside the model. If it is in MM, extend the reuse entity, generate the required structures, maintain SMT mapping, and then adapt the UI. If it is not in MM, choose between feeder enhancement, SPI enhancement, transient fields, or a flex entity depending on whether the data is UI-only, backend-oriented, temporary, or permanent in MDG.
Process flow
- Decide whether the data belongs to data model MM or should be implemented outside MM.
- If the data belongs to MM, extend the reuse entity, generate Field Property and Reuse Active Area structures, maintain SMT mapping, and adapt the UI.
- If the data is outside MM, choose feeder enhancement, SPI enhancement, transient field, or flex entity according to the business need.
- For a permanent MDG-only structure, create a flex entity such as YEQUIP, maintain the key attribute and relationships, and activate the entity.
- Generate the required MDG structures after model changes.
- Check the model with
USMD_DISPLAY_DATA_MODELandUSMD_DATA_MODEL. - Check SPI metadata with MDB for application MDG_MAT.
- Clear UI metadata buffers with MDG_BS_MAT_METADATA_INVALIDATE and MDG_BS_MAT_TEXT_DELETE after transport or model changes.
MDGIMGGeneral Settings > Data Modeling > Edit Data Model
Extend the data model, create entity types, attributes, and relationships
MDGIMGGenerate Data Model-Specific Structures
Generate mandatory Mapping Structures and Field Property Structures
Application: MDG_MAT
Check SPI metadata consistency
MDGIMGGeneral Settings > Process Modeling > Business Activities > Link Actions with UI Application and Business Activity: Custom Definition
Assign the UI to CREATE, CHANGE, and DISPLAY actions
MDGIMGGeneral Settings > Process Modeling > Change Requests > Configure Properties of Change Request Step
Assign or adapt UI behavior by workflow step and manage reuse area check
SM34View cluster FPM_VC_ADAPT_SCHEMA
Maintain the context-based adaptation schema BS_MAT
Referenced tables
| Object | Purpose |
|---|---|
MDG-generated flex tables | Store flex-entity data only in MDG; active area and staging area are identical |
MDG_BS_MAT_SEARCH_RESULT_LIST | Material search-result list when extended fields must appear in search results |
ILLUSTRATIVE ABAP SAMPLE
Source ABAP example: Extend_MDG_M_New_Reuse_Entity_Type.abap
Exact relevant implementation excerpt from the knowledge document set.
1*---------------------------------------------------------------------*
2* <SOURCE_DOCUMENT>
3* Extend MDG-M by a New Reuse Entity Type
4* Version 9.1 - July 2026
5* </SOURCE_DOCUMENT>
6*---------------------------------------------------------------------*
7
8*---------------------------------------------------------------------*
9* <BADI_IMPLEMENTATION>
10* <INTERFACE>IF_MDG_BS_MAT_API_SEGMENTS_EXT</INTERFACE>
11* <METHOD>READ</METHOD>
12*---------------------------------------------------------------------*
13METHOD if_mdg_bs_mat_api_segments_ext~read.
14 DATA: lt_mdgm_bupa TYPE ymdgm_bupa01_t.
15
16 CLEAR: et_data, et_message.
17
18 SELECT *
19 FROM ymdgm_bupa00
20 INTO CORRESPONDING FIELDS OF TABLE lt_mdgm_bupa
21 WHERE matnr IN is_selection-matnr_range
22 AND bupa_id IN is_selection-bupa_id_range.
23
24 INSERT LINES OF lt_mdgm_bupa INTO TABLE et_data.
25ENDMETHOD.
26* </BADI_IMPLEMENTATION>
27
28*---------------------------------------------------------------------*
29* <BADI_IMPLEMENTATION>
30* <INTERFACE>IF_MDG_BS_MAT_API_SEGMENTS_EXT</INTERFACE>
31* <METHOD>CHECK_AND_SAVE</METHOD>
32*---------------------------------------------------------------------*
33METHOD if_mdg_bs_mat_api_segments_ext~check_and_save.
34
35 DATA: ls_data TYPE ymdgm_bupa01_s.
36 DATA: ls_data_x TYPE ymdgm_bupa01_s_x.
37 DATA: ls_message TYPE mdg_bs_mat_s_mat_msg.
38 DATA: lt_modify TYPE STANDARD TABLE OF ymdgm_bupa00.
39 DATA: ls_modify TYPE ymdgm_bupa00.
40 DATA: lt_delete TYPE STANDARD TABLE OF ymdgm_bupa00.
41 DATA: ls_delete TYPE ymdgm_bupa00.
42
43 CLEAR et_message.
44
45 " First some checks
46 LOOP AT is_data-ymdgm_bupa00_tab INTO ls_data.
47 " All fields must be filled, otherwise
48 " MESSAGE e000(00) WITH ls_data-matnr
49 " ls_data-bupa_id
50 " ls_data-nickname.
51 IF ls_data-matnr IS INITIAL
52 OR ls_data-bupa_id IS INITIAL
53 OR ls_data-nickname IS INITIAL.
54
55 ls_message-msgid = '00'.
56 ls_message-msgno = '000'.
57 ls_message-msgty = 'E'.
58
59 ls_message-msgv1 = 'Empty value detected in:'.
60 ls_message-msgv2 = ls_data-matnr.
61 ls_message-msgv3 = ls_data-bupa_id.
62 ls_message-msgv4 = ls_data-nickname.
63
64 INSERT ls_message INTO TABLE et_message.
65 ENDIF.
66
67 " BuPa must exist
68 " ...
69 ENDLOOP.
70
71 " In test mode, we're finished now
72 CHECK iv_test_mode = abap_false.
73
74 " Determine which records to delete or to insert/update
75 LOOP AT is_data-ymdgm_bupa00_x_tab INTO ls_data_x.
76 IF ls_data_x-delete_row = abap_true.
77 " Keep key fields for deletion
78 ls_delete-matnr = ls_data_x-matnr.
79 ls_delete-bupa_id = ls_data_x-bupa_id.
80 INSERT ls_delete INTO TABLE lt_delete.
81 ELSE.
82 READ TABLE is_data-ymdgm_bupa00_tab INTO ls_data
83 WITH TABLE KEY matnr =
84* <SOURCE_TRUNCATED_AT_THIS_POINT />The remaining configuration, implementation details, and testing guidance continue from this answer more…
Related questions and keywords
Alternative questions
- What options are available for displaying additional data in the MDG Material UI?
- How can I extend MDG-M without changing the ERP backend?
- How do I add a new flex entity like YEQUIP in SAP MDG Material?
Possible questions
- What options are available for displaying additional data in the MDG Material UI?
- What is the difference between a feeder enhancement and an SPI enhancement?
- How can a field from LFA1 be displayed without extending data model MM?
- Which methods must be redefined for a feeder enhancement?
- How is a custom node added to SPI model MDG_MAT?
- How can SPI metadata be checked using transaction MDB?
- What happens when AFTER_RETRIEVE returns an empty entry?
- What is the difference between transient fields and flex entities?
- Why are transient fields lost after activation?
- Which mapping class is required for a 1:1 material flex entity?
- Which reports must be executed after a data-model or SPI-model change?
- What are the available MDG-M UI extension strategies?
- What are the delivered application and configuration names for MDG Material?
- What is Context-Based Adaptation?
- Which dimensions are included in adaptation schema BS_MAT?
- Why can CBA not be used for the Classification UIBB?
- How do you deep-copy an MDG Material UI configuration?
- Why must
USMD_CR_OVERVIEWnot be copied? - How is a custom UI assigned to an entire process?
- How is a UI configuration assigned to a workflow step?