1 2 3 7 Previous Next

SAP Master Data Governance

96 Posts

This year again, SAP offered various sessions about SAP Master Data Governance at SAP TechEd. All were fully packed and very well accepted by the audience. It is true that the topic of master data management has been around for quite some time now, but it hasn't lost any of its importance. It's quite the contrary.

In the times of Big Data, Cloud, IoT, and S/4 HANA it has gained yet another dimension: getting and keeping master data clean, e. g. in heterogeneous landscapes, with high volumes of data records, or in mixed deployments consisting of on-premise and cloud applications, requires an effective processing environment and a UX that combines simplicity for the user with context and process-strength. This is where SAP Master Data Governance comes in.


Take a chance and benefit from essential SAP MDG content that was provided at SAP TechEd 2015. For example, you can:


  • Learn about the latest release 8.0, where SAP MDG's coverage has evolved from pure central governance to consolidation:


SAP Master Data Governance: Beyond Central Governance: In this recording of a one-hour hour lecture by MDG architect Markus Kuppe, you can find out how release 8.0 of SAP Master Data Governance software has expanded beyond central governance of master data by allowing decentralized ownership and consolidation of master data, supporting many new use cases for either capability or a combination of the two. Learn about other new features, especially how consolidation uses SAP HANA platform services and about enhanced hierarchy management, extended SAP HANA platform-based analytics, additional SAP Fiori UX interfaces, and more. In this context, see also the current roadmap for SAP MDG at SAP Service Marketplace

  • In addition, registered TechEd participants can also access the following interactive hands-on sessions:
    • DMM160 Hands-On Introduction to Central Governance in SAP Master Data Governance

provides you with the basic concepts of SAP Master Data Governances and lets you experience what you can achieve with the application’s processes for central governance and distribution of master data

    • DMM167 Hands-On Introduction to Consolidation in SAP Master Data Governance

shows you how to use the application’s standardization, matching, and best-record calculation features to gain a single view of master data, and also how to integrate consolidation with central governance

You can access the Interactive Hands-On Workshop assets using the SAP Mobile Documents App. Information on how to access the interactive sessions is available specifically for the attendees of SAP TechEd in Barcelona, and for the attendees of SAP TechEd in Las Vegas

Take the chance and recap.



Note: If you are new to SAP Master Data Governance (MDG), you might want to read my blog post on the Enhancement Package 6 version of SAP Master Data Governance first. It provides a general introduction to central governance and distribution capabilities of SAP MDG. This post here focuses on the additional value provided by release 8.0. There is also a blog post on SAP MDG 6.1, a blog post on SAP MDG 7.0, and one on SAP MDG 7.0 SP02 (Feature Pack).


The very successful ramp-up phase for SAP Master Data Governance 8.0 ended on September 30, 2015, and right after that, the software was generally released. This release marks a significant milestone for SAP MDG, since we have expanded the product from its original purpose (provide central master data governance and distribution) to a broader set of use cases (by introducing master data consolidation capabilities). In addition to consolidation, there are many more innovations in SAP MDG 8.0, some of which I will describe in more detail below.


Quick recap: What is SAP MDG?

With this new release, SAP MDG is a very comprehensive solution for the complete master data lifecycle. It covers central creation, change and distribution as well as de-central ownership and consolidation. We have lots of customers who use SAP MDG for SAP as well as for non-SAP master data, and for data in SAP systems as well as in many non SAP systems in their enterprise landscape.


We have built SAP MDG as a full application, and not just as a toolbox. Of course, SAP MDG is open and flexible and can manage any kind of master data in an enterprise. But for master data that is to be used in the context of business processes at a later point, and particularly in SAP business processes, SAP MDG provides much more “out of the box”. For example, it already provides data models, validations, user interfaces, processes, and the integration into SAP systems.

Furthermore, customers can enhance the standard model and adapt the processes or validations corresponding to their additional master data attributes. And they can execute master data processes for completely different types of master data by creating their own custom-built domains in SAP MDG. The solution also allows you to distribute the data to every system in which you need it.


Serving the major purpose of providing consistent, high-quality data, SAP MDG fulfills all the promises of a state-of-the-art master data management solution. It ensures data quality either during data creation or change, with workflow-driven central processes and data distribution, or through a very flexible best record calculation and optional data validation during the consolidation process.


I also understand that every company needs data validations that go beyond SAP MDG’s pre-built validation against SAP business logic. These additional validations can, for example, be company-specific rules defined in SAP MDG’s rule framework, or you can make use of any external service call, or use SAP Data Services for fuzzy matching, duplicate detection or address validation.


Depending on your preference, you may run SAP MDG on top of SAP HANA. It also runs on other databases, but we encourage you to run it on HANA. This has considerable advantages, for example for real-time analytics, for high-quality match and duplicate detection using HANA’s similarity-based ranked search, or for optimized data flow and throughput in consolidation. I will describe some additional aspects of using SAP HANA in SAP MDG further below.


While SAP MDG always checks the data quality when data is being touched, you can additionally use SAP Information Steward for periodic checks of the quality of all master data in the repository. This includes all master data that is not being touched but just sits there. SAP Information Steward can provide you with the current quality score, with trends in data quality, and it can trigger error correction for master data remediation in SAP MDG.


What’s new in SAP MDG 8.0?


The most important topic in SAP MDG 8.0 is of course the master data consolidation capability that we added. In addition to consolidation, there are several more innovations in MDG 8.0, and there are some overarching themes that we had in mind when we planned these innovations.


One theme for example is to empower business agility with SAP HANA-based analytics as well as consumer-grade user experience. With this focus, we have added more SAP HANA-based analytics that provide a real-time insight into master data processes and results. And we use the power of SAP HANA’s aggregation capabilities to provide key performance indicators and trend reporting, without the need for pre-aggregation in an information warehouse. We also provide additional SAP Fiori apps for master data requests and approvals.


We also did a lot to strengthen what was already there in SAP MDG for central governance. For example, we have improved efficiency and user experience for hierarchy management. We have enhanced the capabilities for mass data handling in an Excel-like grid layout. And we have extended the data models across various domains.


SAP MDG now also provides business partner screening directly integrated into the change process. You will find very comprehensive screening capabilities in SAP Business Partner Screening to identify denied parties or politically exposed parties. This can be based on hundreds of restricted party lists from authorities worldwide, leveraging the power of SAP HANA. As stated earlier, all of this is now fully integrated into SAP MDG.


Let us now discuss some of these innovations in SAP MDG 8.0 in more detail.


Master Data Consolidation in SAP MDG 8.0


The purpose of master data consolidation is to allow for decentral ownership of master data in an organization while still centrally providing transparency of that master data. Accordingly, SAP MDG 8.0 supports a process where you first acquire master data from decentral sources, then you standardize the master data, identify duplicates, and - based on the duplicate match groups - you create a best record.



Figure 1: Process flow for master data consolidation in SAP MDG


To start the consolidation process, the relevant master data can be loaded from any source. To do so, companies can either continue to use the ETL tools they already use and fill transparent tables in SAP MDG that are then used as “source tables”. Companies can also use SAP Data Services or, for example, Sybase replication, if they like. If they decide to run SAP MDG on SAP HANA, this also comes with built-in mechanisms called SAP HANA Smart Data Integration that can very effectively load data from any source.


During data standardization, SAP MDG can natively use the Smart Data Quality services embedded in SAP HANA for processes like address validation. This is done with an open interface that can also be implemented with any other service provider. The same applies for matching: SAP MDG provides pre-integration against SAP HANA Smart Data Quality for mass matching and fuzzy search, and it provides an open interface for any search provider.


Running SAP MDG on SAP HANA and using its capabilities makes a lot of sense, because these services can run directly on the data in the SAP HANA database. This results in a much higher data throughput than if you had to move the data into a separate solution, for example, for address validation. Some companies are targeting tens of millions and maybe hundreds of millions of records for consolidation. That is why we say, SAP HANA is optional, but SAP MDG’s master data consolidation runs best on SAP HANA.


The best record calculation then runs on the match groups, which means it runs on each group of duplicates found. Before running the best record calculation, users can review the match groups; either all of them, or just those with a lower match score. During the best record calculation, the system can use custom-defined survivorship rules to compose the best record out of all source records in one match group.


This is where most master data consolidation solutions stop. You would then just take the key mapping between the duplicates found and perhaps also the calculated best records, and use this information in an analytical context. SAP MDG also supports these scenarios, but it can do more than that: it can validate and activate the newly constructed records. “Activation” in this context means that the consolidated records can become fully valid parts of a company’s central repository of master data.


In detail this means that if a company wants to validate the best records against business rules, this can be done. For example, if you want to use the result of the consolidation in certain business processes, you can check the data for completeness and correctness. And you can even combine the consolidation with the central governance capabilities of MDG in such cases. For example, you could activate all validated data automatically. And only if the validation fails, you launch a change request in SAP MDG’s central governance to have the data looked at, enriched, and perhaps approved by a person.


Consolidation can optionally be combined with central governance



Figure 2: Combine consolidation and central governance to get data clean and then keep it clean


It is one of SAP MDG’s strengths that it allows the combination of “consolidation” and “central governance”, while you can also just use one of them. With this, SAP MDG supports a lot of different scenarios at companies.



Figure 3: The combination supports many different use cases


For example, some companies might want to keep master data ownership decentrally and only use consolidation continuously to, for example, support some analytical use cases.


A second use case is a company that intends to do central governance for the complete company, but before they can do so, they need to clean up their data. They can use consolidation once for the initial load and duplicate detection, and then compose the best records, from which they will start their central governance practice.


Another company may already have been doing central governance for some time, and then this company buys another company. They will have to merge the master data from the new company with the existing master data from the buying company. And then they will continue the central governance. The advantage of using SAP MDG is that this can be done without disrupting the central governance and without business downtime. You can keep changing entries in the central repository while merging and adding new data.


Another scenario would be a company that just wants to do central governance and not use SAP MDG’s consolidation function at all. Of course, this is also still possible.


What we have also seen at companies is that they want to have some parts of the company under central governance and distribution, while the rest of the company is not ready to do so. They will hence keep decentral ownership of master data in that other part of the company, and will continuously consolidate decentral master data into the central repository to have one complete picture of the company’s total master data. Maybe over time they decide to put more and more of the company under central governance. With SAP MDG, they can smoothly do so by flexibly and gradually moving data ownership to central governance.


SAP Business Partner Screening integrated into SAP MDG 8.0


In SAP MDG 8.0, we have added business partner screening integrated into SAP MDG central governance processes. SAP offers very comprehensive screening capabilities to identify denied or politically exposed parties. This can be based on hundreds of restricted party lists from authorities worldwide, supporting fuzziness, aliases, exclusion terms, initials, addresses, and so on. The detection methods leverage the power of SAP HANA for real-time screening of high-volume businesses in time-sensitive environments. It uses SAP HANA to achieve highly accurate results to minimize the number of false positive hits, which is typically a big issue in all screening scenarios.


The compliance checks are fully integrated into SAP MDG. Screening can run automatically in any change request step. A popup is displayed in case of suspicion. The business user can then decide whether he assumes this to be a positive hit or no hit. And as demanded by our customers, the user can still freely decide how to continue the SAP MDG process, independently of the screening decision.



Figure 4: Business partner screening integrated in SAP MDG’s change request process


In the back office, a screening specialist has full visibility of the SAP Business Partner Screening application for evaluation purposes. All hits are recorded within SAP Business Partner Screening where all decisions can be centrally monitored and reviewed. For each of the alerts, the screening specialist can trigger appropriate activities after drilling down to detail pages with information about detection method, risk score, evaluation result, and parameters of the evaluation.


Contextualized SAP HANA-based analytics


SAP MDG offers a broad spectrum of analytics that will help companies optimize their master data management processes. We call this process analytics. If you run SAP MDG on SAP HANA, you can use the real-time aggregation capabilities of SAP HANA to provide these analytics without the need for pre-aggregation in a business warehouse.


With SAP MDG 8.0, we have enhanced the analytics on SAP HANA to become sensitive to data that is directly associated with the change request itself, covering master data attributes, change documents, and SAP Business Workflow-based information. This results in the following business value: the detailed analysis and drilldown options that are based on master data attributes and their changes and the related SAP Business Workflow data make it possible to identify MDG process issues in large amounts of information in real time. You can then trigger appropriate remediation activities by a systematic analysis of SLA failures, or by collaboration with those in charge for fast correction.


SAP MDG process analytics can now retrieve the following information associated with change requests:


  • Object-based change request analytics: This enables scenarios combining the change request data information with detailed, attribute-level information from the objects in the change request. For example, you could investigate the number of change requests for the creation of suppliers and offer a drilldown by purchasing organization or company code.
  • Change document-based change request analytics: This allows you to combine the change request data information with change information about the object data contained in the change request. For example, you could show all material-related change requests where a specific plant was involved.
  • Workflow-based change request analytics: This now enables scenarios that combine the change request data information with information from the assigned workflow. This could be detailed information on the various work items (like runtime or duration) or information from the workflow container object (like change request step number) as well as information about potential processors of the work items. For example, you could analyze open work items per organizational unit and visualize which unit currently has the most open work items.



Figure 5: Example of workflow-based change request analytics


The analytics described above can also be made available for mobile devices. You can, for example, use SAP Smart Business to provide this insight in the form of small tiles that catch the user’s attention by visualizing a key performance indicator or a trend supported by some color coding.



Figure 6: KPIs and trends shown on a tablet using SAP Smart Business


The next topic also addresses business users with a similar kind of consumer-grade user experience.


Additional SAP Fiori apps for request and approval of master data changes


The Feature Pack for SAP MDG 7.0 already provided several SAP Fiori apps for request scenarios. With SAP MDG 8.0, we have added to those, and we provide the first SAP Fiori apps for the approval of master data changes.


The idea of all these apps is to allow more people in the organization to directly participate in the master data management process from any device and from anywhere. For example, you might want to allow every employee of a company to request master data changes or master data creation from any device. Similarly, the approval apps enable the people in charge to check and approve master data changes, and to do so from anywhere – even when on the road.



Figure 7: Approval of the creation of a cost center (left) or a cost center change showing the intended attribute changes (right)


SAP Fiori request apps are available in SAP MDG 8.0 for Business Partners, Customers, Suppliers, Materials, Cost Centers and Profit Centers. SAP Fiori approval apps are available for Cost Centers and Profit Centers. We intend to add more apps soon, and we encourage our customers to build their own SAP Fiori apps on top of SAP MDG, which some companies have already done.


Enhanced and Simplified Hierarchy Management


SAP MDG 8.0 provides an improved user experience for hierarchy management for custom objects as well as in the area of financials. The user interface now provides a more intuitive access, for example when launching the change process from the search screen. It provides a more efficient single-object processing, because the object changes and the assignment of the object to the hierarchy can now be done in one change request. In addition, the processing of multiple objects and the mass change process have been enhanced and are now more effective. With better transparency along the process of what has been changed in the objects themselves and within the hierarchy, it is now easier for approvers to make fast and informed decisions about the approval of proposed changes.


We have also simplified the execution of analytical reports on the basis of hierarchy information. And in addition, the integrated creation of change requests for mass changes and file upload provides additional efficiency in these processes.


Other innovations in SAP MDG 8.0


The list of innovations in SAP MDG 8.0 is long, and I could fill several more pages writing about them. Instead, I will only mention a few selected other innovations in this last paragraph.


For example, we have made enhancements to multi-record processing: You can now create multiple objects at a time using existing objects as a template. Multi-record processing can now also more intuitively handle texts in multiple languages. Accordingly, the users can now, for example, easily change language-dependent texts and copy or remove many materials in one change request. In SAP MDG 8.0, this can also be done directly from the search result list.


There are many more improvements, like a simplified mass change and mass upload for master data with increased flexibility in the inbound processing. Enhancements were made to the master data domain content, for example, the material data model now has approx. 500 attributes in the standard delivery. We have made many additional improvements to usability as well as easy integration, for example to synchronize audit information between SAP MDG and SAP ERP Financials. And so on and so on…


More information


There is a lot more you can learn about SAP MDG on the SAP Master Data Governance page on SCN.


For example there are some expert session recordings on SAP MDG 8.0:



You may also want to have a look at the recently published latest version of the SAP MDG Product Roadmap on the SAP Service Marketplace under => Product and solution road maps => Database & Technology => Enterprise Information Management.


P.S.: Just in case that you haven't seen them, there are two new videos Introduction to SAP Master Data Governance from a Business Perspective and Consolidation with SAP Master Data Governance.


In the last months I have spent a lot of time in building POCs and demos with SAP MDG 8.0. I also kicked off a customer project with MDG-M at the customer site during the ramp-up phase of MDG 8.0. As you might be aware, MDG 8.0 is out of ramp-up in the meanwhile and generally available.

In this blog I would like to share my highlights of SAP MDG 8 with you.


1.       Introduction of SAP MDG, consolidation

With SAP MDG 8.0 SAP introduces a complete new use case/scenario for consolidation. From an architectural and solution perspective this is a major and important step towards the possibility to use SAP MDG for all master data scenarios. In addition to the central creation, SAP ships now the business function for “SAP MDG, consolidation”. The UI for the end user is completely Fiori-based and the user gets guided through the consolidation process. At the end of the process the consolidated data gets activated into the operational tables of the SAP ERP or into the staging area of SAP MDG to be able to have system supported/based governance before the data ends up in operational processes. SAP MDG, consolidation is available for Business Partners (as well customers and suppliers) only in SAP MDG 8.0, but the foundation is built to support Materials and more domains with upcoming releases.


2.       Major enhancements in SAP HANA-based analytics

Basic features were introduced with SAP MDG 7.0 already, but now much more is possible: In SAP MDG 7.0 it was only possible to do analytics and reporting on Change Request header data. Now with SAP MDG 8.0 you are able to bring that meta data together with “payload” data. In other words: Combine change request data with additional data that is directly linked to the change request.

In a demo-build I was now able to configure (completely code free) tiles and drill downs with SAP Smart Business in a very simple way. In the past I needed to write hundreds line of codes to get the same result in ABAP and Web Dynpro for ABAP. One example: How many change requests were created in the actual quarter when a specific US-Plant was included?

In addition to the new possibilities of the new SAP MDG 8.0 HANA calculation views, SAP Smart Business is getting also more major and includes now more more features and user friendly capabilities.


3.       New functions and features in specific domains/applications

Many new functions and enhancements are delivered SAP MDG 8.0, but I would like to highlight the following specifically because they are a big benefit for the projects have done so far:

a. MDG-M Data Model Enhancements:

SAP MDG 8.0 includes now the entity for the table QMAT (Inspection type - material parameters). In the past we delivered that part most of the time via customer specific enhancements with SAP MDGs enhancement concept. In addition SAP MDG 8 also has more new entities such as production version, MRP areas and material ledger.

b. Hierarchy Maintenance in SAP MDG for Financial Data:

Now it’s possible to assign cost center, profit centers, G/L accounts, and cost elements to hierarchies from single-object processing. No need to create separate 2 Change Requests anymore. This improves the speed of the business process dramatically and the user friendliness increases of course.

c. Enablement of Mobile Access through Fiori Apps

In the past, SAP MDG had standard Fiori apps to submit a new change request from a mobile device, but the further processing and approval was executed in a more complex looking SAP Web Dynpro user Interface. Now, with SAP MDG 8.0, the approval of a change request is also possible via a SAP Fiori app. For a demo I configured the standard app to approve financial data with a minimum effort.



Pretty soon I plan to post some offline demos to the SCN as I did for SAP MDG 7.0 already. So please check for that upcoming update.

Best Regards


What is SAP Master Data Governance all about?


Three new videos provide quick insight into the concept and benefits of SAP Master Data Governance. Watch the new videos introducing SAP Master Data Governance from a business perspective, it takes no more than 3 minutes (each).


Video 1: Introducing SAP Master Data Governance


The first video describes the impact of poor master data across the enterprise and outlines how SAP Master Data Governance can help to get and keep your customer, supplier, material, financial and technical asset data ready-to-use for excellent business operation and analytics. And this is valid also in hybrid landscapes consisting of on-premise and cloud systems. Check the SAP Master Data Governance introduction video out on SAP.com:


(The SAP MDG intro video can also be accessed on youtube.)


Video 2: Introducing Consolidation with SAP Master Data Governance


The second video focuses on the consolidation capability of SAP Master Data Governance which has come with product release 8.0. With this capability, SAP MDG also tackles the challenge of consolidating master data that is spread across heterogeneous system landscapes. As of release SAP MDG 8.0, consolidation is available for customer, supplier and business partner data. More details can be found in this presentation.

To get insight into the concept, the use cases and the process flow in consolidating master data with SAP MDG, check out the video about SAP Master Data Governance, consolidation.



(The video about consolidation with SAP MDG can also be accessed on youtube)


Video 3: Introducing SAP Master Data Governance for Technical Assets


The third video is about optimizing master data governance for asset-intensive industries based on the SAP Master Data Governance, enterprise asset management extension by Utopia. To see how it provides maintenance pros and other asset management stakeholders with the information, tools, and process control they need to optimize operations in asset-intensive industries, click here:


(The SAP MDG for EAM video can also be accessed on youtube.)



Hope this info is beneficial for you.





When we were implementing SAP MDG-F Cost center and Profit center , our requirement was to import all the Cost centers and Profit centers  from the ERP system that were valid right from the year 2005. Based on the business processes and existing data, we identified that we had to create one edition per month in the MDG system. That meant we had to create 120 editions to import the current data into MDG system.


Now ,  a How-To Video is already available showing how to create an edition manually.But as we had to create 120  editions , the manual process looked little tedious and time consuming , so we decided to automate this process.

During our analysis , we found a  utility class called CL_USMD_EDITION_API. I couldn't find any detailed documentation regarding this and so I decided to blog about this API.

This a very useful API with methods for almost all the edition relevant operations.

Method CREATE_EDITION is what we were looking for the automatic creation of Editions.

We created a small file upload program and used method  CREATE_EDITION within this program to upload 120 editions and the process took just seconds


This class contains lot of other useful methods for e.g. GET_EDITIONS_OF_ENTITY that determines the editions where the current object was
changed and   GET_VALID_EDITIONS which determines a list of editions for a given object which
can be used to create a change request for this object.


The above two are just examples and  there are many other useful methods


If you would like to perform various edition relevant operations programmatically , be sure to check this class.




Configure MDG Entity Search result list : With this configuration result list columns order can be changed , some columns can be hided and Push buttons on Tool bar can be removed and new buttons can be added .


1.Prior to  Configure Entity Search result list we have to create configuration of Search application ( USMD_SEARCH ) . For this open customizing path in MDG IMG :General Settings-> UI Modeling-> Manage UI Configurations . Select the Application as USMD_SEARCH  and template configuration given by sap



2. Open Component Configuration USMD_SEARCH_OVP_TEMPLATE. Under Additional Functions , choose the Deep Copy button. Enter target configuration IDs for the application configuration .In Below example APAP is my entity name so configration ID is given as ZZ_APAP_SEARCH.

Now open the App.Configuration created and Enter parameters

USMD_MODEL: The data model

USMD_ENTITY: The entity type

USMD_OTC: The business object type.


By default system will give Template configuration name . This has to be replaced with custom configuration  .


Then replace the template configuration with the configuration you created . Finally your application Configuration should look like below


Then open the configuration Name then we can see one search UIBB and one list UIBB.

Now replace your template configrations of search UIBB and List UIBB with custom configration .( You can use deep copy of templates as we did in previous steps)


To configure the result list of the search application, The List UIBB need to configured .

component configuration of list UIBB  uses standard

feeder class CL_USMD_SEARCH_GUIBB_RESULT. This feeder class has two

main parameters:

+ (GenIL) Component

+ (GenIL) Object Name

Using these parameters, you can decide in which mode the result list runs. First, you can leave both parameters empty. In this case, the

result list is configured by an implicit configuration (-> displayedcolumns, order of columns, buttons) you cannot influence. Second, you

can enter the name of a GenIL component and the name of a GenIL queryresult object. In this case, the result list is configured by the

explicit configuration you created and you can influence all aspects of its appearance.

My data model name is ZZ , so my Genil component will be ZSP_ZZ.

and object name will be QResAPAP ( i.e QRes<entityname> )



Once these settings are done the List will be editable to users and they can delete unwanted columns and unwanted push buttons based on the requirement .

So, there are many documents and notes from SAP that highlight how to extend a standard UIBB with a custom field. So before you flag my content as duplicating previously covered material...hear me out.


Despite this abundance of information on how to do this, it still took us a good while to get the correct sequencing down for this to actually work on our recent MDG-M project, and a LOT of trial and error.


For this reason I put together a document, a step by step guide with screenshots, to easily and successfully do this seemingly simple task.


Hope you find it as useful as we did!


Extending SAP Standard Entity with Custom Fields



Example Requirement

Table MARA should be extended with the customer specific fields ZZBASETYP, ZZBRAND and ZZPROAREA

The Data Model MM, Entity MARASALES should be extended with these attributes. The attributes should also display in the UI.


1. Append new fields to Standard Table (MARA)


You have to extend the table MARA with the new fields, include the new fields in the customizing table T130F and extend the backend structures.

1.1 Open Transaction SE11

1.2 Display the MARA table

1.3 Pick ‘Append Structure…’ and add your own or expand on an existing one

1.4 Add new fields to the append structure as required using namespace ZZ…

1.5 Activate the table (this will take some time…so remember – patience is a virtue!)


2.     Include Z-field in Table T130F


You must include the Z-field into table T130F, see SAP Note 44410.

2.1 Open Transaction SE11

2.2 Display the table T130f

2.3 Using the menu got to: Utilities -> Table Contents -> Create Entries

2.4 Select V_130F

2.5 Add your field(s) with table name in front e.g. mara-zzbrand

2.6 Activate the table


3.     Structure Extensions


The Service Mapping Tool (SMT) is a program used in ABAP to fill a target structure with a set of source structures. The relevant structures for the target structure of the primary persistence (MARA, MARM, MEAN, MARC…) are:

  • MDG_BS_MAT_S_<Tablename>
  • MDG_BS_MAT_S_ <Tablename>_UI
  • MDG_BS_MAT_S_ <Tablename>_X

The new fields are automatically included in structure MDG_BS_MAT_S_MARA, but the other 2 structures must be appended.

3.1 Open Transaction SE11

3.2 Display the table: MDG_BS_MAT_S_ MARA_UI

3.3 Pick ‘Append Structure…’ and add your own or expand on an existing one.

3.4 Add new fields to the append structure as in the MARA table

3.5 Activate the table

3.6 Repeat steps 3.1.2 to 3.1.5 for table: MDG_BS_MAT_S_ MARA_X


MDG_BS_MAT_S_MARA (Automatically populates)screen3.JPG






The following information concerning the structure MDG_BS_MAT_S_MARA_X:

If the X-field-structure of the MDGM-API is extended after the creation of an SMT mapping, the SMT mapping needs to be regenerated. Therefore repeat this step.

4.     Extending the Data Model


You now have to extend the data model MM with the new fields, extend the structures and maintain customer includes. The system uses the data model to generate database tables in which the master data can be stored.

4.1 Open Transaction MDGIMG

4.2 Follow the menu path General Settings -> Data Modeling -> Edit Data Model

4.3 Select the line for data model ‘MM’ and click the ‘Entity Types’ folder

4.4 Select the line for the entity you are working on (e.g. MATERIAL) and click the ‘Attributes’ folder.

4.5 Add the new fields to the list of attributes

4.6 Activate the Data Model

4.7 Open Transaction SE38 and execute the report: USMD_ADJUST_STAGING using data model ‘MM’


5.     Generating Back End Structures


5.1 Open Transaction MDGIMG

5.2 Follow the menu path General Settings -> Data Modeling -> Generate Data Model Specific Structures

5.3 Select the line with the data model ‘MM’ and click on ‘Structures’

5.4 Select all 6 entries for the entity ‘Material’ and click ‘Generate Selected Structures’


6.     SMT Mapping

You extend mappings by creating new transformations (complex transformations, field mappings) and field checks for them or by editing them. Here you work cross-client.

6.1 Open Transaction MDGIMG

6.2 Select General Settings -> Data Modeling -> Create and Edit Mappings -> Create and Edit Mappings

6.3 Follow the next steps twice, once for each mapping. Click on Mappings -> Open and select the Mapping:


6.4 Look for ‘MDG_BS_MAT_MATERIAL (for 2PP) or ‘MDG_BS_MAT_MARA’ (for 2STA) in the column ‘Mapping Step’ of the table and click ‘Details’

6.5 Select the ‘Transformation’ tab and click the ‘Edit’ Button

6.6 Click on the add button for the field mappings and add you custom field


6.7 After you have created the mapping in SMT you should return to the IMG and perform the IMG activity check customizing to ensure consistency of the changes.


7.     UI Model

The new attributes should also be considered in the UI. UI configurations can be adapted using the FPM-enhancement option.

For details see other Extensibility Guides:

http://scn.sap.com/docs/DOC-29042 (Chapter User Interface Configuration and Extending the UI configuration)

http://scn.sap.com/docs/DOC-27859 (Chapter User Interface Configuration and Extending the UI configuration)


7.1 Open Transaction MDGIMG. Select General Settings -> UI Modeling -> Manage UI Configuration

7.2 Scroll down and select  UI config you are using.

7.3 Select ‘Continue in Display Mode’ and click on the hyperlink for the configuration layout

7.4 Scroll down the page to the ‘Overview Page Schema’ and select the line for the relevant UIBB for the section of the UI you are adding your field to. Click the button ‘Configure UIBB’.



7.5 Click ‘Additional Functions’ -> ‘Enhance’. If using the ‘Basic Data’ UIBB there is already an enhancement created, if not you will need to create one. You will now be able to Hit the EDIT button

7.6 Scroll to where you want your new field in the UI and click on  ‘Add element’ -> ‘New element’

7.7 A list of fields will come up and if you scroll to the bottom you will see your newly added fields.

7.8 Once fields are in the correct place SAVE and exit.


8.     Reactivate Data Model

8.1 Reactivate the data model and run the adjust staging report again Now should all be good to go!

The standard Workflow inbox delivered by SAP Master Data Governance is very generic, since it does not contain any business data (like Material attributes). Luckily we can change this.


Business requirement

Turn this:
... into this:


Technical background

The MDG Inbox uses the Suite Inbox (CA-EPT-IBO) or Lean Workflow Inbox as a basis. This is basically a WebDynpro application that uses a POWL List to display Workitems. While the application offers Workflow-specific features not found in the standard POWL application (e.g. substitution settings for Workflow), it is driven by a specialization of the POWL feeder.



We implement a new Query by deriving a new ABAP Class from the SAP MDG Standard one. First the SAP Standard fetches the assigned Workitems and standard fields (like priority, CR status, ...), then we add the business data (here: Material).


1. DDIC Structure & Table Type

In SE11, create new DDIC structure and table types describing your result structure. The structure must contain the base fields of the MDG inbox in structure USMD_S_CREQUEST_POWL. Use a named INCLUDE so that you have easier access to the Material fields in your ABAP coding later on. I include the Material structure /MDGMM/_S_MM_PP_MATERIAL generated by MDG-M, i.e. all fields of the Type1 entity MATERIAL will be available for the end user.


2. ABAP Class for Query

Create a new ABAP class derived from CL_USMD_CREQUEST_POWL, the standard Inbox feeder. Overwrite the following methods:

  • SET_MV_RESULTS: Set me->mv_results to the name of your result table type
  • SET_MV_RESULTSTRUCTURE: Set me->mv_resultstructure to the name of your result structure
  • CONSTRUCTOR: Copy the code from the super Constructor into this method
    (for ABAP internal reasons, the Constructor does not execute the code in your overwritten methods as you might expect. It's in the documentation, so you cannot complain, and I for once am not half as good in explaining such things as Mr. ABAP himself)


3. Register the new POWL application

Using transaction POWL_COCKPIT, you create a new POWL application, query type (this references our ABAP class), query, and finally register your query to the application. See the POWL documentation for details.


4. Create WebDynpro configurations

Now we need WebDynpro application and component configurations that start the Suite Inbox application IBO_WDA_INBOX with our new POWL list:

  1. Copy the application configuration USMD_CREQUEST_POWL into customer namespace & edit it
  2. Copy & edit the component configuration of IBO_WDC_INBOX. Change the parameter applid to the name of your newly created POWL application
  3. (Optional) Copy & edit the component configuration of POWL_UI_COMP. This allows you to modify the look&feel of the POWL result table.
  4. Assign the newly created component configurations in the application configuration created aboveinbox_appl_config.PNG
  5. (Optional) From transaction POWL_QUERY, define a standard ALV layout for the result table, e.g. which columns are being displayed initially.


5. ABAP code for reading Material data

At last, some real coding (You didn't think you could just customize this together, did you?! ). In this code, we first let the MDG standard fetch the Workitem information, then we add the Material data using theMaster Data Governance Application Programming Interface.


The code uses some tricks for enhancing the performance that are applicable to MDG programming as a whole:

  • Use concrete DDIC types whenever possible
  • Reduce the MDG API calls to the bare minimum, i.e. it is better to do more work in your own code than to call the API. For instance, in the code below, instead of invoking the MDG API from within the LOOP (n calls), I prepare a list of Material numbers and invoke the API only once.

First display is pretty slow (>1.5s), as the MDG API initialization (CL_USMD_GOV_API=>GET_INSTANCE())alone adds 0.5s to the start-up time.


METHOD if_powl_feeder~get_objects.
     "Let Standard fetch & fill basic fields
     CALL METHOD super->if_powl_feeder~get_objects
         i_username              = i_username
         i_applid                = i_applid
         i_type                  = i_type
         i_selcrit_values        = i_selcrit_values
         i_langu                 = i_langu
         i_visible_fields        = i_visible_fields
         e_results               = e_results
         e_messages              = e_messages
         e_workflow_result_count = e_workflow_result_count.
     IF e_results IS INITIAL.
     "Cast result into real type
     FIELD-SYMBOLS: <workitems> TYPE y0mm_mat_ui_t_ibo_creq_mat.
     ASSIGN e_results TO <workitems>.
     "Create mapping table workItem --> CR
     DATA(lt_wi_crequest) = cl_usmd_wf_crequest_mapper=>get_crequest_by_wi(
       it_wi = VALUE #( FOR <wi> IN <workitems> ( <wi>-wi_id ) )
     "Get MDG GOV API
     DATA: lo_mdg_api TYPE REF TO if_usmd_gov_api.
     TRY .
         lo_mdg_api = cl_usmd_gov_api=>get_instance(
                      iv_model_name   = cl_mdg_bs_mat_c=>gc_usmd_model
       CATCH cx_usmd_gov_api.
         RETURN.   "Some error, so we show only vanilla worklist
     "Get list of (first) Material in each CR
     DATA: lt_material_keys TYPE SORTED TABLE OF /mdgmm/_s_mm_kf_material
             WITH UNIQUE KEY material.
     TYPES: BEGIN OF ty_wi2material,
       wi_id     TYPE y0mm_mat_ui_s_ibo_creq_mat-wi_id,
       material  TYPE /mdgmm/_s_mm_kf_material-material,
     END OF ty_wi2material.
     DATA: lt_wi2material TYPE HASHED TABLE OF ty_wi2material
             WITH UNIQUE KEY wi_id.
     LOOP AT <workitems> ASSIGNING FIELD-SYMBOL(<workitem>).
       "Get CR for that Workitem
       READ TABLE lt_wi_crequest
         ASSIGNING FIELD-SYMBOL(<wi2crequest>)
         WITH TABLE KEY wi_id = <workitem>-wi_id.
       IF sy-subrc <> 0.
       TRY .
           "Get object list of that CR
               iv_crequest_id             = <wi2crequest>-usmd_crequest
               et_object_list_db_style    = DATA(lt_object_list)    " Change Request, Entity, Table Type
           "Is Material entity in CR?
           READ TABLE lt_object_list
             ASSIGNING FIELD-SYMBOL(<ent_material>)
             WITH KEY usmd_crequest = <wi2crequest>-usmd_crequest
                      usmd_entity = cl_mdg_bs_mat_c=>gc_entity_name_mat.
           IF sy-subrc <> 0.
           "Get Material key into key table (conversion!)
             VALUE #(
               material = <ent_material>-usmd_value
             INTO TABLE lt_material_keys
             ASSIGNING FIELD-SYMBOL(<material>).
           "Store association workItem -> material
             VALUE #(
               wi_id     = <workitem>-wi_id
               material  = <material>-material
             INTO TABLE lt_wi2material.
         CATCH cx_usmd_gov_api.
           "Ignore errors, just let add-on data fields empty in output
     IF lt_material_keys IS INITIAL.
       RETURN.   "No CRs in list, nothing to add
     "Read all Materials from MDG API (Only 1 call for performance reasons!)
     DATA: lt_materials TYPE HASHED TABLE OF /mdgmm/_s_mm_pp_material
             WITH UNIQUE KEY material.
         iv_crequest_id = VALUE #( )         "Initial CR, means read all
         iv_entity_name = cl_mdg_bs_mat_c=>gc_entity_name_mat    "Material
         it_key         = lt_material_keys    "Material in current CR
         et_data        = lt_materials    " Entity Keys and Attributes
     IF lt_materials IS INITIAL.
       RETURN.   "No Materials, nothing to add
     "Add Material information to Change Requst Work Item List
     LOOP AT <workitems> ASSIGNING <workitem>.
       "Get material_id by workitem_id
       READ TABLE lt_wi2material
         WITH TABLE KEY wi_id = <workitem>-wi_id
         ASSIGNING FIELD-SYMBOL(<wi2material>).
       IF sy-subrc <> 0.
       "Get Material data into WorkItem list
       READ TABLE lt_materials
         WITH TABLE KEY material = <wi2material>-material
         INTO <workitem>-yy_material.


6. Test it

You can invoke your new MDG-M Inbox by starting the Suite Inbox with the newly created configuration. The URL should look something like this:

7. Inbox customizing

You might have realized that the Suite Inbox is showing all Workitems from all workflows and that the MDG specific buttons (e.g. "Process request") are not working. This is due to missing customizing settings, that SAP delivers for the MDG Inbox. The customizing is specific to the POWL applicationID, which is of course different for our own Inbox.

You can copy over the settings made by SAP (in system tables) into customizing tables. There are some Customizing transactions for this in SPRO, but I entered it directly. SM30 for the customizing table, SE16 for the system tables, as well as Copy&Paste are your friends in this task.

IBO_C_WF_TA_P_SCIBO_C_WF_TA_P_TYTasks to show in Inbox. Leave empty to see all tasks of all workflows in system.
IBO_C_WF_ACCIBO_C_WF_ACSAction types for the Inbox actions: Describes how a navigation event triggered by one of the Inbox buttons is evaluated by the Inbox, e.g. via OBN or a function module handler.
IBO_C_WF_TACIBO_C_WF_TASOverwrite the standard action to execute on a task.
IBO_C_WF_TTACIBO_C_WF_TTASWhich Inbox actions (buttons) are available for a task in the inbox.


This work is heavily based on the blog MDG: "Empower the POWER List" by Florian Raab, which also contains some very nice screen cams (movies, not just pictures!) to guide you through the POWL setup process.

SAP MDG & SFDC Integration:

Often in today’s world, we come across many cloud based products like Ariba, Salesforce being used by Organizations to deal with Procurement & Sales in their daily business.  Seamless integration is demanded between ERP & these cloud based applications without compromising on Data Quality. As Data plays a key role in any Company, compromising on data quality has ripple effects in Business Transactions. Hence it is very much needed to maintain Data quality and keep business intact along with maintaining quick turn-around between SAP & End-user facing solutions.

In the below blog, we will discuss real time scenario, where Salesforce is integrated with SAP and the role of Master Data Governance (SAP MDG) to improve the data quality.

  • A lack of a centralized, systematic review and approval of Customer data creation can lead to extensive data integrity issues such as duplicate records, inconsistent records.
  • On save of an Account in Salesforce an Interface is triggered, which creates a Change Request for Customers (Account Type: Prospect) in MDG. This Change Request appears in Data Stewards in-box for approval. Sales/Customer Service needs very quick turn-around time in-order to facilitate the SAP Quotation for these Prospects. Hence there are very minimal checks (duplicate & address Validation) that are needed for Prospects.
  • On Approval from Data-Steward (after performing business and Data Quality validation), Prospect is created in SAP and synchronized to Salesforce using Data Replication which facilitates further transactions in Salesforce.
  • Once the Quotation is approved, and ready to be converted to a Sales Order, Sales or Customer Service logs into Master Data Governance and requests for Account Group upgrade from Prospect to Sold-To. As Sold-To plays a critical role, this Change Request goes through a series of checks from teams like Accounts Receivables, Sales etc. this series of validations can be manual or can also be automated with different third-party systems.
  • Below are few examples of the validations:
  • Credit Team: 
    • Credit Team will perform the credit check using third-party services (manual or automated) before they approve the Customer creation.
  • Tax Team:
    • To verify Customers Tax Exemption certificates if any.
  • Data Steward/AR Team:
    • Will be responsible for performing a sanity check on the CR data and also enriching the Customer data as per the Company’s business policies.


Customer _ Acc Group.jpg

Technical Details:

  • Supplier Web service - BusinessPartnerSUITEBulkReplicateRequest_In is used to create Inbound Change Request for Customer.
  • MDG 7 Feature of changing the Account Group for Customer Master Data.

Integration scenario SAP MDG and C4C.

In a digitised economy masterdata and its life cycle also undergoes a sea change. Earlier for a B2C (business to consumer) scenario ERP was used to store information in batches. Hence customers coming to an online shop or a store were mostly anonymous and hence no identity or master data was necessary. But with social computing gaining ground organisations have to be more and more attentive to the needs of individuals and have started listening to them more than ever. Hence the customer speaking about a product on the cloud is no more left alone – he or she is very well connected with the feedback on the product and services posted on a social media etc. and could very well be a ‘prospect’. Or consider a B2B scenario where an organisation is looking for spares and then registers on the company portal for another organisation, thus becoming a prospect with interest.


In this document we describe the following customer integration scenario.


  1. Create a Prospect in C4C – send to MDG
  2. Create a Customer in MDG and send to C4C.


But before we start, we take a look at the landscape in context.


SAP MDG - SAP C4C Integration Architecture.PNG



So we can see C4C or Cloud for Customer SAP’s CRM on Cloud where prospect information arrives in the enterprise landscape and is mediated via SAP PI to integrate with SAP MDG for further enrichment and process enablement.



Let's look at the individual scenario and see how we achieve this integration.


Scenario1- Create a Prospect in C4C – send to MDG


  1. Prospect is created in C4C. Once prospect needs to become a customer, a request towards MDG is triggered.
  2. An outbound Web Service BusinesspartnerSelfInitiatedOut is sent to PI.
  3. In PI the above message would be mapped to BusinessPartnerSuiteBulkReplicateRequest_In message for MDG.    (PS- Few mappings are needed in SAP PI for this message to determine  values in BP Group, BP Role, Sales Area, Customer Account Group etc.as this information won't necesarrily be available in the incoming message.)
  4. MDG receives the above message and automatically generates a Change Request of type CUSTHI01.
  5. The change request can be either auto-approved or can be manually checked and approved.
  6. After final approval of the change request a BP and Customer is created in MDG and a key mapping is written in MDG UKMS framework along with the Prospect ID of C4C.
  7. After final approval outbound message BusinessPartnerSuitBulkReplicateRequest_Out is sent out to PI.
  8. In PI the above message would be mapped to BusinessPartnerreplicationIn message.
  9. When received in C4C, the message updates the prospect record with customer channel information along with a key-mapping holding MDG BP number.

Create Customer in C4C and Send to MDG.PNG



Scenario2- Create aCustomer in MDG – send to C4C


After an unsccessful Search in MDG – a CR is created for a BP with Customer Role.


  1. The CR goes through the governance process and is finally approved to create a BP and Customer in MDG.
  2. An Outbound WS BusinessPartnerSuiteBulkReplicateRequest_Out is sent to PI.
  3. In PI the above message would be mapped to BusinessPartnerreplicationIn message for C4C.
  4. C4C receives this message and creates BP with customer channel information.
  5. Along with the BP a key-mapping is created in C4C with MDG BP  and Customer ID.
  6. A confirmation message is sent from C4C to PI.
  7. The above message is mapped to BusinessPartnerSuitebulkConfirmation_In for MDG.
  8. The above message is received in MDG to update the key-mapping which now holds MDG-BP, Customer & C4C Business Partner ID.


Create Customer in MDG and Send to C4C.PNG


Scenario3- Create a Contact Relationship in C4C and send to MDG


  1. We have a Customer in C4C and we get a call from a person in the customer organisation - we want to keep him as a contact person in the customer information.
  2. The person's information is updated in C4C Customer as a Contact relation.
  3. Two Outbound WS are sent to PI: BusinessPartnerReplicationSelfinitiatedOut,and BusinessPartnerRelationshipReplicationInitiatedOut
  4. In PI the 1st message is covered as part of scenario 1 and the 2nd message is mapped to BusinessPartnerRelationShipSUITEBulkReplicate_In message for MDG.
  5. MDG receives the above messages in sequence – where the 1st message reads the UKMS key mapping in MDG to know a BP exists in MDG and thus it create a Change Request of type CUSTHI02 to change the BP. The next message updates the Change request with a Relationship information in the above Change Request.
  6. After final approval of this CR, two WS are sent out to PI with key-mapping information updating the Relationship.
  7. These messages are sent to C4C which updates the relationship key-mapping of MDG.



Create a Contact Relationship in C4C and send to MDG.PNG



Scenario4- Create a Contact Relationship in MDG and send to C4C



  1. We get a request from a customer to include a contact person. in this scenario we manage this master data in SAP MDG  which is interfaced and integrated with C4C
  2. The person's information is updated in SAP MDG Customer as a Contact relation.
  3. Two Outbound WS are sent to PI: BusinessPartnerReplicationSelfinitiatedOut,and BusinessPartnerRelationshipReplicationInitiatedOut_Out
  4. In PI the 1st message is covered as part of scenario 1 and the 2nd message is mapped to BusinessPartnerRelationShipSUITEBulkReplicateIN message for C4C
  5. C4C receives the message and reads the key-mapping which performs the change on the actual BP number and creates the contact relationship.
  6. These messages are sent to C4C which updates the relationship key-mapping of MDG


Create a Contact Relationship in MDG and send to C4C.PNG


We can extend this idea to more complex scenario of bringing in a master data from the cloud and then govern it for process enablement.


Thank you



As you may already have noticed from the SCN blog from Dean Fitt, since November 2014 there is a solution extension to SAP Master Data Goverance in place, covering the governance processes for technical assets, such as equipment and functional locations.


If you like to know more details about this offering, you may read the solution overview presentation, and check a one-hour Webinar recording that is available on youtube, explaining the overall process flow and functions.

SAP customers can also access the Product Availability Matrix on SAP Service Marketplace to get more information.


Hope this information is useful.





Business Requirement


                 SAP Master Data Governance helps organizations govern master data from its creation in a business application,through step by step enrichment by different roles in the organization, to its replication to target applications to ensure data quality and regulatory compliance across the enterprise. SAP master data governance can be used for multiple master data domains like customer, material, supplier, articles , finance etc.

Like other flavors of MDG, MDGA consulting solution also comes with a predefined data model. Customers would be able to extend the data model fields during the project phase based on their additional requirements. If you have already extended other MDG standard data models (like MDG-M), then the procedure to extend MDG-A would be essentially the same.




                   In this blog we will walk you through the steps required to enhance the MDGA Solution with an additional field in the MARA entity type.




                   In this scenario you want to extend the Data model with field KUNNR which is available in MARA table.




Package for customizing include


                   If you want to transport your enhancements, you must assign a package for your customizing includes.

In Customizing for Master Data Governance (transaction MDGIMG), open the activity General Settings ->Data Modeling ->  Assign Package for Customizing Include.





Edit the entry for Data Model AR and type the desired package to be used.



Save your changes.



Data Model Extension


                  You have to extend the MARA entity type, which has storage and use type 1, so it includes the KUNNR attribute.

You can view the settings for storage and use type for existing entity types in Customizing for Master Data Governance under General Settings -> Data modeling -> Edit Data model.




Select the AR data model and double click on Entity types (alternatively you can choose view cluster VC_USMD001 in transaction SM34). In the list of entity types, you can double click an entity type to view its details as shown below for the MARA entity type.




Now double click on Attributes.



Click on New Entries and add the following Values and Press Save.







Ignore the warning messages that come up and provide a Transport Request.  Then click Activate.



Now navigate to Customizing for Master Data Governance under General Settings ->Data Modeling -> Generate Data Model Specific Structures.





Select AR data model and navigate into Structures. Select MARA Specific structures and click Generate Selected Structures.





Now go to SE38 and execute the program usmd_adjust_staging and provide AR as data model.





SMT Mapping


Active to Staging area



Navigate to MDGIMG -> General Settings -> Data Modeling -> Extend Mappings.





Select Mapping->Open.  Provide the Mapping name as /VPCOE/MDG_MAP_ARTICLE_2STA.






In the table Mapping Steps select MAP_FROM_MARA and choose the Details button.





Select the Transformations tab





Change to Edit Mode.

Choose the Add button to add a new field mapping.





Enter the Field Mapping from KUNNR to ZZKUNNR as shown in the screenshot.



Save the field mapping by pressing Save button.


Staging  to Active area



Open  /VPCOE/MDG_MAP_ARTICLE_2PP    mapping.





In the table Mapping Steps select  MAP_2_MARA and click Details button.




Navigate to Transformations tab and activate Edit mode.





Choose the Add button to add a new field mapping.





Enter the Field Mapping from ZZKUNNR to KUNNR as shown in the screenshot bellow.






Now press Save button.

UI Configuration



UI configurations can be adapted using the FPM-enhancement option.


Navigate to MDGIMG -> General settings -> UI Modelling -> Edit UI configuration.



Now select the UI configuration /VPCOE/USMD_ENTITY_VALUE2 and click Edit. Now select Continue in Display Mode button






Next, select the OIF component (click on the component name). Select Additional Functions dropdown button and then select Enhance from the dropdown list.







Provide an enhancement implementation name and click OK.





Select a package where you want to save the changes and the transport request.

Next, read the confirmation message



Select the node where you want to add the new UIBB FORM, and from the dropdown button choose Add Form.




Provide a name for the new UIBB.


Now select Configure UIBB. When prompted, choose to save the configuration ID and choose the transport request.

Create a new Configuration


Provide the package name for saving the new configuration ID.


Do not provide any entity type over here. Press OK button.


Now add a Group element and inside the group add a child element. Set the property as Input Field.





Save the changes by pressing Save button.






You have now added the ZZKUNNR field to the Basic Data section of the UI as an enhancement.


Testing the configuration


                 Now open this UI configuration from your change request. You should be able to see the KUNNR field on UI and update the database.


Troubleshooting Tip


                If you are not able to see the field kindly check the UI Badi and also the Field control customizing done on the ERP.

Recently, my customer department asked me to turn a text field in Material master (MARA-BEGRU) into a checked input field with a value help, plus text (plant name) from foreign table. The requirement specification based the approval workflow on said field contents, so there was really no way I could talk the customer straight out of this nonsense idea.

The outlook was bleak, our options were dire: Start a requirement discussion with the user department late in the project? Rush in a modification? Postpone GoLive? Surrender? - Never!




Turn this ...


... into this.

Implementing these requirements is surprisingly easy with SAP Master Data Governance, as it uses Floorplan Manager for Web Dynpro ABAP for UI and provides a ton of extensibility options:

  • FPM allows you to specify and override field properties in the GET_DATA call, e.g. to add a DDIC search help to a field that has none.
  • Adding UI-only fields can be achieved via FPM feeder class extension.
  • Checking against the foreign key table via the MDG check extensions, e.g. BRFplus



In ERP, such a requirement requires a modification (which is often described on the net), but we do not want to do this, especially since MDG considers the check table setting of the fields domain, and the domain of this field is used in several master data objects. Luckily in MDG-M, we can use extension mechanisms of MDG-M itself and Floorplan Manager to achieve the same result w/o modification.

Note: MDG-M uses the Service Provider (SPI) Framework internally, so not everything of this implementation can be 1:1 applied to other MDG applications, yet the approach will still be the same.


Provide your own feeder class

Use one of the FPM provided extension methods to add your own UI logic into the SAP delivered MDG-M application. This allows you to extend / alter parts of the SAP delivery modification-free, w/o being cut-off from future SAP developments or bug fixes. The MDG-M User Interface Enhancement Guide has a very comprehensive step-by-step description of the process. I prefer to use FPM enhancements for changes that effect all screens / change requests, and CBA if the change is only applicable in certain situations (e.g. certain Material type).


Adding text fields

Redefine the FPM SPI feeder method /PLMU/IF_FRW_G_FIELD_DEF~CHANGE_FIELD_DEFINITION to add additional fields to the both the field catalog (CO_CATALOGUE) as well as the field description (CT_DEFINITION). For text fields, it is important to:

  • name the field in the following pattern: <main_field>__TXT<optional_id>
    So if your field is named YY_DSRESP, then you should call your text field(s) for that field YY_DSRESP__TXT and YY_DSRESP__TXT2.
  • Do your changes to before calling the super-> method. This way MDG works some magic to hide the text fields when the main field is hidden, highlights changes, etc.


The following sample code does the trick:

METHOD /plmu/if_frw_g_field_def~change_field_definition.
    "Get the current UI structure's field list
    DATA(lt_components) = co_catalogue->get_components( ).
    "---------- Add custom (UI-only) fields
    "Text field for 'Authorization group', where we have plant numbers
        iv_name            = cs_field-begru-txt
        iv_type            = VALUE t001w-name1( )
        ct_components      = lt_components
        ct_spi_field_descr = ct_definition
    "---------- Modify field list / Call SAP Standard
    "Create new structure description with added components
    co_catalogue = cl_abap_structdescr=>create(
      p_components = lt_components
    "MDG standard does all the magic (highlighting, hiding field if key is hidden, ...)
    CALL METHOD super->/plmu/if_frw_g_field_def~change_field_definition
        et_special_groups = et_special_groups
        co_catalogue      = co_catalogue
        ct_definition    = ct_definition. 

The helper method for consistently changing the structure and description list looks like this:

    "Get data type of new field
    DATA: lo_field_description TYPE REF TO cl_abap_datadescr.
    lo_field_description ?= cl_abap_datadescr=>describe_by_data(
      p_data = iv_type
    "Add field to UI data structure
      VALUE #(
        name = iv_name
        type = lo_field_description
      INTO TABLE ct_components.
    "Add UI field to description
      VALUE /plmu/s_frw_g_field_descr_appl(
        name = iv_name
        technical_field = abap_false
      INTO TABLE ct_spi_field_descr.

Adding Search Help

This is also very easy, since you can provide the name of a DDIC search help in the field description list. So in the above method, just change the field description after you have called the super-> method. In the below code, the MDG delivered search help for plants (T001W) is assigned to the field Authorization group (BEGRU), which normally is a text field:

    "---------- Change behaviour of existing fields
    "Search help for BEGRU
    READ TABLE ct_definition
      WITH TABLE KEY name = cs_field-begru-name
      ASSIGNING FIELD-SYMBOL(<field_definition>).
      "Use same search help that MDG uses for plant number search
       <field_definition> -ddic_shlp_name = 'MDG_BS_MAT_WERKS_ELEM'.

Foreign key check

The changes so far affect only the UI, i.e. MDG-M itself does not know about the foreign key relation between the field Authorization Group (MARA-BEGRU) and the plant table (T001W), but you can implement this yourself, e.g. using a BRF+ rule to do the check and issue an appropriate error message if the entered key is not in the table.



I've been working with MDG for several years now, from early CoInnovation over several Ramp-ups all the way to the recent v7.0, yet still I am sometimes surprised on how easy it is to implement customer requirements, while at the same time staying fully within the boundaries of supported enhancements of the SAP standard. Working with the v7.0 release has been a real joyful experience so far, enabling us to implement some rather obscure requirements in my current project.


Many thanks to Adrian Branka for providing the idea for this solution. His consulting skills have kept our project from derailing several times already.

Recently I came across a need to debug the standard execution flow of the data enrichment framework in MDG to troubleshoot some issues. Apparently the trouble was that a custom enrichment done in the system wasn’t working. However, I was pretty convinced that it wasn’t the issue and decided to find out what the real trouble was.


The problem statement was that the overall MDG performance turned slow very suddenly and it seems to get stuck at the custom data enrichment applied.


So I started debugging from the point where the enrichment gave way to the standard. I could see that the enrichment did its job well, and the entities were getting the data updated correctly. Immediately after that, came  the standard validations that perform data checks on the entire change request.


The below screenshot shows the standard code which applies all the checks for the request step.



The selection was based on the below:




Based on the configuration, there was a duplicate check in place. As I gradually proceeded with the debugging to narrow down the cause, I could see that the performance hit was coming up in the duplication check.




Next round of debugging - go inside the standard duplication check to understand whats happening within it.

The standard does the duplicate search based on the configured set of attributes.


So it prepares the data and then accesses the enterprise search template set for this data model.




Once the template is obtained, it accesses the correct connector ID for establishing the link to TREX via the connectors. ( As you must be aware by now, that the connectors are setup using the ESH Cockpit , which by itself is a pretty cool feature.)




So after doing all this 'magic', it accesses TREX and tries to return the results. Now if the TREX is not accessible or has any data corruption issues with the indices, this is going to fail and there would not be any results. This has the potential to 'hang' the system.


So it was a good learning to go through all these layers and finally pin-point that the issue wasn't with any custom enhancement done, but rather with some corrupt indices in the TREX. And upon re-indexing the same and recreating the connector, the issue was resolved.


So a lesson learnt is to execute the enterprise test search tool from the back-end to check this issue out much faster than going through all the layers of debugging.




Hope this may prove useful for all the techies out there who are interested in cracking the duplication check available in the standard logic flow.

SAP Master Data Governance is a highly adaptable and feature rich solution for Master Data Management processes. The solution has matured over the years (I'm honored to have been influential in this process), but one area remains a constant source of (end user) complaints: The UI performance is sluggish, especially in MDG for Material (MDG-M).


While SAP has a great team working on improving MDG-M (including, but not limited to the performance aspects), changes of this sort to an already shipping product take time: As a customer, you certainly do not want your customized implementations to break due to some change that speeds up the application launch. Luckily, there are a few tweaks you can apply on customer side to improve the end-user experience today.



Several changes can be applied to the MDG-M standard delivery to decrease start-up and round-trip performance of MDG(-M). The proposed changes range from tweak for the frameworks used by MDG-M to UI enhancements. All changes are "legal", i.e. do not require modifications.



The changes are presented from least to most effort and invasiveness. All proposed changes are modification-free and in line with what a well-behaved SAP customer is allowed to. There is also no ABAP coding involved (which I somewhat regret ).


0. SAP Documentation

First, you reading the Master Data Governance 6.1 for Material: Performance Tweaks (or an equivalent newer guide from Configuration and Enhancement of SAP Master Data Governance) and following its advice is mandatory. If you have not read it, then read it. If you already read it, read it again, as SAP is updating its guides.


1. Use latest Software or ServicePack

There are a lot of bottlenecks in SAP code across all software components used by MDG-M (MDG Framework, FPM, WebDynpro, SPI, … and of course MDG-M itself), lots of which have been fixed over the years. Sadly, this means that there is not one single SNOTE that you can implement to get the UI to speed. Some of these fixes are not even available as SNOTE due to their complexity and dependencies, so you definitely need to (ordered by effort):

  1. Upgrade to the most current MDG-M Release (v7.0) & ServicePack (SP03 at the time of this writing)
    Since MDG is an ERP AddOn, you can upgrade this component alone sometimes, e.g. we have MDGv7.0 also running on an EhP6
  2. Upgrade to the latest kernel
    Kernels are backward compatible, and the latest ones benefit WebUI performance a lot. Ask you Basis for details.
  3. Upgrade EhP / BASIS to latest release and SPS
    We currently use MDG-Mv7 SP03 on EhP7 with SAP Basis 7.40 SP08 for new installation

I know that SPS or EhP updates mean a tremendous testing effort on customer side (hmm, so much for my ordering of the tips ), but if your project is still in the planning phase, you should definitely include the system update in your project schedule.



2. Turn off SPI checks

Implement SNOTE 2108310 to get a new option in the SPI framework to switch off data model checks for improving start-up performance. With this fix implemented, go to transaction SPI_CHECKS and switch of checks for all users for data model MDG_MAT.

The setting is per-user and per-system and not transportable, which enables you to leave the checks on in development, but switch them off in production to gain performance. Since you have fully tested your solution well on Q&A system, there is no need to run these developer checks in production. (You do test, don't you?! )


3. Stacked OVP UI

The Overview Floorplan can arrange UIBBs in a stacked layout, leading to something like a tabbed UI. This not only improves the start-up and round-trip times of the application as there are fewer UIBBs displayed / to be processed / reading & writing data, but also leads (in my opinion) to an easier to use UI with less scrolling for the end-user.


This change can be easily implemented using the FLUID editor of Floorplan Manager for Web Dynpro ABAP and one of the FPM UI extension methods (I recommend FPM Enhancements, see below). This tip is not MDG-M specific, but can be applied to other MDG applications as well.


4. Menninger's One-pager

The following tip to improve start-up and round-trip is in-house known as Menninger's One-Pager, as Mrs. Elke Menninger pointed it out to me (Allegedly it is also in the documentation, so maybe I am bad at reading documentation. ). The trick is applicable if your end-users need access to a complete SPI node like MARA (roughly corresponding to Basic Data 1 & 2 in MM01). This data is spread across several MDG entities in the data model and thus UIBBs on the screen. This allows you to both simplify the UI for the user and increase the speed of the application, since less UIBBs mean less memory / CPU usage.


Follow these steps:

  1. Open the FPM FLUID component configuration you want to change (e.g. Form for Basic Data)
  2. In "General section", press button "Feeder class parameters"
  3. Leave the entry for "Entity" blank
  4. Now add fields to your Form / List. You will see more fields to add in the list, e.g. Base Unit of Measure from MDG entity MATERIAL and Manufacturer from MARAPURCH are available in the same UIBB:


5. Entity filter

In case you require only data from some entities backing an SPI node but not all, implement SNOTE 2083931 to have a finer grained control over the entities being used by a UIBB. The effects on start-up and round-trip times are similar to the One-Pager described above, but applicable in more areas. For details, see the SNOTE description. Once correctly implemented, your feeders have an additional parameter Entities that takes a list of entities read.


6. Remove Un-used UIBB

SAP delivers a full-blown UI with UIBBs for all entities. Usually you do not have the complete Material under governance on a central system, but only some central attributes. If the UI is simplified and un-used UIBB are removed, this greatly increases start-up and round-trip performance, as the system has less data to shuffle around internally.


This change requires FPM configuration adjustments, which should be applied via FPM Enhancements or Customizing, since it is a global change that affects the display of the whole application and not just one CR type. You should therefore not use CBA, as this comes at some performance impact and thus should be reserved for per CR-type adjustments.


Note that you cannot undo this change unless you delete your customizing or enhancement, i.e. there is no Un-Delete. If you later decide that you need one of the UIBBs you deleted, you have to start from scratch again with your deletions. That said, this change takes only minute, and you do not add new governance attributes every day.


Implementation steps:

  1. Open the OVP configuration you want to change in Display mode
  2. From the menu, choose Enhance and create a Create Enhancement. Specify a name from the customer namespace and continue.
  3. In the UIBB Schema, select the UIBBs you do not need and Delete them from
  4. In the Wiring Schema, a lot of wires are now marked in red as errors because their source / target UIBBs are no longer in the UIBB Schema. Delete all the red wires, like MacGuyver showed you.


Measure & Profit

With above changes, the main screen for Material maintenance in a CREATE scenario shows up in less than 3s. This is not stellar, but much better than the out-of-the-box experience. I would like to hear from your experiences: Is you MDG installation faster? Slower? What tricks did you come up with?


As already written in the introduction, SAP is working on the performance issue in many teams. If you feel MDG performance is an issue for you, remember to open an OSS message, as a signal that this is an important topic for you as a customer.


Filter Blog

By author:
By date:
By tag: