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

  1. Decide whether the data belongs to data model MM or should be implemented outside MM.
  2. 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.
  3. If the data is outside MM, choose feeder enhancement, SPI enhancement, transient field, or flex entity according to the business need.
  4. For a permanent MDG-only structure, create a flex entity such as YEQUIP, maintain the key attribute and relationships, and activate the entity.
  5. Generate the required MDG structures after model changes.
  6. Check the model with USMD_DISPLAY_DATA_MODEL and USMD_DATA_MODEL.
  7. Check SPI metadata with MDB for application MDG_MAT.
  8. Clear UI metadata buffers with MDG_BS_MAT_METADATA_INVALIDATE and MDG_BS_MAT_TEXT_DELETE after transport or model changes.
MDGIMG

General Settings > Data Modeling > Edit Data Model

Extend the data model, create entity types, attributes, and relationships

Structure
MDGIMG
Master Data Governance
Classic Mode in SAP MDG
Central Governance
General Settings
Data Modeling
Edit Data Model
MDGIMG

Generate Data Model-Specific Structures

Generate mandatory Mapping Structures and Field Property Structures

Structure
MDGIMG
Master Data Governance
Classic Mode in SAP MDG
Central Governance
General Settings
Data Modeling
Generate Data Model-Specific Structures
MDB

Application: MDG_MAT

Check SPI metadata consistency

MDGIMG

General Settings > Process Modeling > Business Activities > Link Actions with UI Application and Business Activity: Custom Definition

Assign the UI to CREATE, CHANGE, and DISPLAY actions

Structure
MDGIMG
Master Data Governance
General Settings
Process Modeling
Business Activities
Link Actions with UI Application and Business Activity: Custom Definition
MDGIMG

General Settings > Process Modeling > Change Requests > Configure Properties of Change Request Step

Assign or adapt UI behavior by workflow step and manage reuse area check

Structure
MDGIMG
Master Data Governance
Classic Mode in SAP MDG
Central Governance
Process Modeling
Change Requests
Configure Properties of Change Request Step
SM34

View cluster FPM_VC_ADAPT_SCHEMA

Maintain the context-based adaptation schema BS_MAT

Referenced tables

ObjectPurpose
MDG-generated flex tablesStore flex-entity data only in MDG; active area and staging area are identical
MDG_BS_MAT_SEARCH_RESULT_LISTMaterial 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_OVERVIEW not be copied?
  • How is a custom UI assigned to an entire process?
  • How is a UI configuration assigned to a workflow step?

Keywords

SAP MDG-MMaterial UIData Model MMMDG_BS_MAT_OVPFPMUIBBfeeder enhancementSPI/PLMB/ES_SPIENRICH_NODE_DEFINITIONBEFORE_RETRIEVEAFTER_RETRIEVECHANGE_FIELD_DEFINITIONAFTER_GET_DATABEFORE_FLUSHCBABS_MATUSMD_ACC_FLD_PROP_CUST_DEP_SETOVS/PLMU/IF_FRW_G_OVSSMTtransient fieldFlex entityfield propertiesMDG_BS_MAT_METADATA_INVALIDATEMDG_BS_MAT_TEXT_DELETEIF_USMD_MODEL_EXTIF_USMD_GOV_API