SAP MDG · DATA MODEL UI

How do I set up and enhance SAP HANA-Based Search for Material after extending data model MM?

To enhance SAP HANA-Based Search for Material after extending data model MM, first classify the extension as reuse attribute, reuse entity, or flex entity; then update the HANA search view, generate the view and optional rule set, adjust search-attribute customizing if needed, and enhance MDG_BS_MAT_SEARCH_RESULT_LIST if the field must appear in results.

To enhance SAP HANA-Based Search for Material after extending data model MM, first classify the extension as reuse attribute, reuse entity, or flex entity; then update the HANA search view, generate the view and optional rule set, adjust search-attribute customizing if needed, and enhance MDG_BS_MAT_SEARCH_RESULT_LIST if the field must appear in results.

To enhance SAP HANA-Based Search for SAP MDG Material, extend data model MM first and then update the Material search view accordingly. The guide covers delivered views MDGM_MM_ORGS and MDGM_MM_ORGS_CLF, generation of SAP HANA views and optional rule sets, reuse-table join mapping for custom entities, flex-entity support at main entity level, and UI enhancement of MDG_BS_MAT_SEARCH_RESULT_LIST when a field should also appear in search results.

Process flow

  1. Extend data model MM with the required field or entity.
  2. Determine whether the extension is Case A, B, C, or D.
  3. For reuse entities, maintain Join Attributes, Join Fields, and Field Mappings in Define Joins and Field Mapping for Reuse Tables.
  4. Open or create the Material SAP HANA search view.
  5. Select the extended entities and attributes in Step 2.
  6. Review the configuration in Step 3.
  7. Save and assign a Workbench request.
  8. Generate the SAP HANA views and optional rule set as needed. Regeneration overwrites manual HANA Studio changes in the generated view, so reapply them if necessary after regeneration, because manual modifications are overwritten on view reg

SAP HANA Search generation UI

Create or enhance the Material HANA search view, select entities and attributes in Step 2, review in Step 3, then save and generate.

Define Joins and Field Mapping for Reuse Tables

Maintain Join Attributes, Join Fields, and Field Mappings for custom reuse entities.

FLUID / Floorplan Manager -> MDG_BS_MAT_SEARCH_RESULT_LIST

Enhance the Material search result-list UIBB so added fields can appear in the results.

SAP HANA Administration Console -> Systems -> <System> -> Content -> <HANA Package>

Inspect generated HANA attribute views and manually customize them if required before regeneration.

Catalog -> <Schema> -> Views

Check generated union SQL views such as ZMM_ORGS1_USQL.

SAP HANA Development perspective -> Repositories -> <package>

Check out and edit generated rule sets such as ZMM_ORGS1_Rule_Set_USQL.searchruleset.

Referenced tables

ObjectPurpose
MDGM_MM_ORGSDelivered Material search-view template for organizational data.
MDGM_MM_ORGS_CLFDelivered Material search-view template including classification.
ZMM_ORGS1_USQLExample generated union SQL view.
ZMM_ORGS1_Rule_Set_USQL.searchrulesetExample generated search rule set.
MDG_BS_MAT_SEARCH_RESULT_LISTMaterial search-result list UIBB.
CL_MDG_BS_MAT_HDB_SEARCHRestriction class for Material HANA search; entities without persistent tables are not allowed.
MDG_HDB_MAT_MIGRATE_LONGTEXTUpgrade report to build long text required for Material HANA search.

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 is SAP HANA-Based Search for MDG Material?
  • How do I extend SAP HANA-Based Search after extending data model MM?
  • What are the delivered Material HANA search views?

Possible questions

  • What is SAP HANA-Based Search for MDG Material?
  • From which MDG release is SAP HANA-Based Search available?
  • Can SAP HANA-Based Search search both active and staging Material data?
  • Can SAP HANA-Based Search combine Material attributes and classification?
  • How do I extend SAP HANA-Based Search after extending data model MM?
  • What is the difference between Enterprise Search and SAP HANA-Based Search in MDG Material?
  • Which report must be run for Material HANA search after an upgrade?
  • What does MDG_HDB_MAT_MIGRATE_LONGTEXT do?
  • Which class restricts entities without persistent tables from HANA search?
  • What are the delivered Material HANA search views?
  • How do I add a field to MDG_BS_MAT_SEARCH_RESULT_LIST?

Keywords

SAP HANA-Based SearchMDG Materialdata model MMMDGM_MM_ORGSMDGM_MM_ORGS_CLFMDG_HDB_MAT_MIGRATE_LONGTEXTCL_MDG_BS_MAT_HDB_SEARCHMDG_BS_MAT_SEARCH_RESULT_LISTSAP HANA Studioreuse entityflex entitysearch viewrule set