1 2 3 6 Previous Next

SAP Master Data Governance

87 Posts

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.

Seems like there is no direct way out there which mentions about the various bells and whistles associated with using an enterprise service in MDG, especially if there is no PI involved.

It is a bit of a challenge to get the service working as expected, but like everything else, once it does work, it does its job beautifully.


A few points below may help many folks out there when trying to setup any inbound web service for MDG change request creation.


Let me take the example of the business partner creation in MDG. No PI is involved. The requirement is to create MDG BPs through an external system call. There is a middleware which acts like a bridge between the external system and the SAP system. This middleware will ensure the call is made correctly, the data is passed to the fields correctly, the authentication happens correctly and finally the WS RM protocol is setup and utilized correctly.


Identify the right service:

SE80--> Package --> MDG_BS_BP_XI_PROXY -->Service Providers-->BusinessPartnerSUITEBulkReplicateRequest_In


Setup the service definition/binding in SOAMANAGER for this service


Provide the endpoint as well as the WSDL Details to the third party system


Ensure the bgRFC is setup correctly in the ECC system using the transaction SBGRFCCONF


If a change request other than the one configured for the UPLOAD activity has to be used, implement the BADI MDG_SE_BP_BULK_REPLRQ_IN  and specify the change request type to be used.


Setup the global code lists of the system specific code lists for any fields requiring value mapping.


Test the service using the Test Service Provider option available within the package (in se80) and provide a sample payload.


If all the setup has been done correctly, the MDG change requests can be seen getting created.


The error messages returned in the service are pretty extensive and provide good information on where the issue is.

Usually the key problems arise because of the inconsistent formatting of the payload, absence of proper value mapping, incorrect attributes being passed etc.


Ensure that the SMT mapping is validated for BPBUPA_RPLRQ_BSFND_IN and BPBUPA_RPLRQ_ECC_CU_IN as these are the key for the customer inbound mappings. The field mappings are straightforward, however the complex transformations can be tricky, especially if some fields are not mandatory.


During the actual inbound processing that is triggered from an external system, make sure the messages are monitored using the tool SRT_UTIL as the WSRM based messaging will not return back the details of the errors.


Hope this helps folks to get a head start on the inbound service setup!

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. As you probably are already aware, SAP MDG  process are centered around the concept of Change Requests. Any request for creation or change of an object is handled via change request. The change request work items any user receives, as part of the governance process, are visible in his workflow inbox. In a typical business day, the user would log into his workflow inbox and start processing one work item after another. The workitem inbox in its standard  view shows only the field information from the change request header


In the retail industry we very often come across a requirement in article governance process , where the category manager or the purchasing manager likes to make a decision based on certain attributes on the article master data .  These could be for example, based on the Purchasing Group decide if he is the one to process or should this be picked up by another colleague in the team  or based on the price decide if he wants to include the article in his assortment therefore move the article to the next step for further enrichment  etc


Especially during the early steps in the governance process the category manager might not want to click on the change request item and go into the details, But rather might want to make the decision on how the workitem should be processed right from the inbox.


The category manager is looking for a view where he can look at some important fields on the article data  in a single glance and make decisions on multiple articles right from the inbox without going into the detailed view screen



In this blog we will walk you through the steps required to enhance a standard MDG inbox to include additional fields.


Pre Requisites


We will enhance the inbox with the purchasing group field. The MDG for Article data model already has the field Purchasing group and hence we need not extend it. But if you want some other field as additional column in the MDG Inbox for any data model, then that respective field has  to be first extended in the Data Model



  • Create a class zcl_usmd_crequest_powl which is an inheritance from super class cl_usmd_crequest_powl.
  • Copy the structure usmd_s_crequest_powl into your own Z structure. This is nothing but your inbox structure. Now add the additional field to this structure.
  • Reimplement the method SET_MV_RESULTSTRUCTURE in your Z class and provide this structure name over there.

        Now you have your own structure which will be displayed in your inbox. In order to pass value to this field,

  • Redefine the method  IF_POWL_FEEDER~GET_OBJECTS. Call the super method first and then have your part of coding:




data: : it_wi_crequest        type usmd_ts_wi_crequest,

like line of it_wi_crequest,

type usmd_ts_wi,

like line of it_wi,

type ref to if_usmd_crequest_api,

type usmd_t_crequest_entity,

type ref to data,

type usmd_ts_field,

like line of it_field,

type string value 'wi_id = wa_wi_crequest-wi_id',

type usmd_ts_sel,

like line of it_sel,

like line of it_entity.

field-symbols: <fs_results>      type any,

type any,

type any table,

type any,

type any,

type any,

type any.




= i_username

= i_applid

= i_type

= i_selcrit_values

*     I_LANGU                 = SY-LANGU

*     I_VISIBLE_FIELDS        =


= e_results

= e_messages

= e_workflow_result_count.

e_results assigning <fs_results>.

assign component 'WI_ID' of structure <fs_results> to <fs_id>.

= <fs_id>.

append wa_wi to it_wi.


= cl_usmd_wf_crequest_mapper=>get_crequest_by_wi( it_wi = it_wi ).

loop at it_wi_crequest into wa_wi_crequest.

call method cl_usmd_crequest_api=>get_instance(


= wa_wi_crequest-usmd_crequest

= <model name>


= lo_usmd_crequest_api ).

call method lo_usmd_crequest_api->read_objectlist(


= 'MARA'


= it_entity ).

read table it_entity into wa_entity index 1.

if sy-subrc = 0.

refresh it_field.

-fieldname = 'WEKGR'.

insert wa_field into table it_field.

call method lo_usmd_crequest_api->create_data_reference(


= 'MAW1'


= it_field


= lr_data ).

assign lr_data->* to <fs_data>.

-fieldname = 'MARA'.

-low       = wa_entity-usmd_value.

-option    = 'EQ'.

-sign      = 'I'.

insert wa_sel into table it_sel.

call method lo_usmd_crequest_api->read_value(


= 'MAW1'

= 'X'

= it_sel


= <fs_data> ).

refresh it_sel.

if <fs_data> is assigned.

loop at <fs_data> assigning <fs_wa>.

assign component 'WEKGR' of structure <fs_wa> to <fs_wekgr>.

if <fs_wekgr> is assigned.

loop at e_results assigning <fs_results> where (lv_cond).

assign component 'WEKGR' of structure <fs_results> to <fs_wekgr1>.

assign component 'ARTNR' of structure <fs_results> to <fs_matnr>.

move <fs_wekgr> to <fs_wekgr1>.

move wa_entity-usmd_value to <fs_matnr>.

modify e_results from <fs_results> index sy-tabix.





refresh it_field.




this will give you the result including the Purchasing group. Now the inbox has to be changed based on this.

So, go to transaction code powl_type and change the entry usmd_changerequest_wi and change the class name11.jpg

Now your inbox will be reflected with the new value.

Note: Since inbox is a common component where all workitems from all domains are received, this column will be visible also when you login to govern your vendor master data (for example). In order to avoid this, you have to create a separate role and have your own Powl Id in that which means it will be reflected only in your current Article Inbox.




We started implementing Cost center and Profit center  with MDG 7.0 SP02. Our scenario is to have  a central MDG hub system where the cost centers and profit centers would be maintained and then in turn replicated to other SAP/Non SAP systems.


We decided to use the communication channel 'Replication via Idoc' to SAP systems.During the initial tests in development system, we found out that the standard outbound implementation classes provided by SAP perform remote validations in the target systems via BAPIs before creating and sending a IDOC for e.g.the outbound implementation class was checking if the values are being passed for mandatory fields , whether the values being transferred are available in respective check tables in target systems etc.,If these checks fail , then the replication is stopped at the MDG hub itself and the error messages are logged. These messages could be seen in DRFLOG.



This feature is in fact pretty straight forward and helps in avoiding transferring junk data from MDG hub to other SAP systems.

However , we faced couple of issues while performing tests in development system


1) Existence check:For some fields , the existence check is done. For e.g. there is a field called User responsible. It displays users available in MDG hub system. But users available in MDG hub system were not available in target systems and this caused issues in our tests.


2) Performance: We found out that the performance of the replication was not that great.  During our analysis we found out that the remote checks are taking significant amount of time.


I also wondered if this feature is needed in the scenarios where the MDG  hub and the target system are in the same system.


But this looked like a standard solution and we didn't think of contacting SAP or checking for OSS notes. So , to overcome the above mentioned issues ,  we contemplated the option of copying the standard outbound implementation class to a custom class and then skipping the validations to improve the performance. However , before starting with the implementation , I somehow had this feeling that this is not a problem unique to our organization and it could have been faced by other organizations as well. So out of curiosity I started exploring SDN and OSS notes.


To my surprise , I found out that SAP had already provided a solution for this via OSS notes  2052107 - MDG-F: New Parameter for DRF Outbound Implementations  and   2054082 - MDG-F: Issues in the ALE IDoc Replication for Cost Centers .


With the above two notes SAP has provided a new outbound parameter MDGF_NO_REMOTE_CHECK and also corresponding adaptions in the standard outbound implementation classes. If  the outbound parameter MDGF_NO_REMOTE_CHECK is set to value Y in replication model , the standard SAP  outbound implementation class skips the remote validations. This indeed greatly improved the performance.


I hope this blog would be helpful for all those looking to have the remote validations skipped.

Only recently, I gave a lecture about data quality and master data management/governance for a larger audience. It was a not the first time that I presented the topic, and I started my speech as usual with common business needs for adopting a master data strategy and then moved to the SAP software portfolio that is set to tackle the challenge.

I began with SAP Data Services and Information Steward being the appropriate weaponry for data quality improvement and control, and then came to SAP Master Data Governance bringing in the process component ensuring sustained master data quality by involving predefined validations and putting the relevant data stewards in the driver's seat.

The session went well, there was a lot of interest in the audience, and after the official Q&A part I was approached by a listener who stated that he liked the session overall, but was a bit confused by the product variety outlined in my presentation.


Well, I took the feedback... and forgot about it on my way home. It was only yesterday that this came to my mind again, and I started thinking about what the listener wanted to tell me. From an outside SAP perspective, the world obviously looks a bit different:


As a business or IT specialist in a company, if you are faced with data quality related business issues you want to:


  1. Be in a position where you can easily analyze and visualize existing data issues
  2. Be able to dig into the root cause, and be able to cleanse defective data
  3. Avoid in the long-term that such issues occur again


Actually the outlined SAP solution portfolio perfectly matches these needs, but the way data managers think starts with their needs and ends with a solution, not vice versa. So If I had told the story straight from a solution-oriented perspective and had come up with the associated software only afterwards, I guess the message would have been clearer.

It was really revealing how important it is to take the customers' perspective to get the message across and not just by telling how great our products are.





Dear MDG-Community!


Looking for information on how to build a UI for your custom object?

Then check-out the updated documentation on the help portal:

Creating User Interfaces for Single Object Processing


If you have the change to attend SAP TechEd && d-code, there is also a hands-on session on creating a custom object scenario, including the creation of a UI configuration. Join us at session DMM265 Build Processes for Your Own Master Data with SAP Master Data Governance in Las Vegas, Berlin, or Bangalore.


Can’t get there? Check-out SAP TechEd && d-code online!


Best regards,


Dear MDG-community!


With the availability of SAP MDG 7.0 SP03 we also enhanced the documentation around the change request process. Now, there is a new topic on the help portal: Configuration of the Change Request Process


This topic and its related sub-topics

- explain the change request process

- tell you about step, step type and status

- suggest a notation for change request process flow

- show how to configure the rule-based workflow in detail


We look forward to hear your feedback!


Additionally I want to make you aware of the new edition of the SAP workflow book. It also includes an extensive chapter on MDG - A must-know for all MDG Gurus! (All authors donate their proceeds to Doctors without Borders).


See: Hot off the presses, Practical Workflow for SAP http://scn.sap.com/community/bpm/blog/2014/08/03/hot-off-the-presses-practical-workflow-for-sap


And https://www.facebook.com/Workflowbook


All the best,


Hi SCN folks,

TechEd && d-code is coming closer and I prepare myself for some interesting days soon to come.  I will be in Berlin (November 11–13, 2014) at the EIM table and I am looking forward to having meetings with our customers, partners and of course with many of you.  Please stop by to chat about all EIM related topics.  I can also show you a lot of new live demos showcasing many of the latest new  EIM features. Specifically I have prepared in the last weeks the following scenarios to share with you:

  1. MDG-HANA Roundtrip Demo:
    This will guide you through brand new content which has been available since MDG7 SP02 in Q2 2014: Starting with triggering a MDG CR from a mobile app and approval in NWBC, we will then check the MDG Analytical Reporting dashboard. Lastly, we will drill down in the HANA search to the newly created supplier
  2. New MDG Fiori Apps:
    We have all the new MDG Fiori Apps up and running – we materials, customers or supplier request forms in addition to the new  financial Fiori Apps.
  3. New MDG Hana Drill Down Search for MDG-Suppliers
    This is a dedicated demo for the enhanced capabilities in the HANA Drill Down search. The demo concentrates on a supplier example.
  4. New MDG Analytics based on HANA and SAP Smart Business
    This is very exciting content: We will explore the new dashboard Tiles and Drill Downs available and additionally show how we can configure our own reports.
  5. MDG-IS including single sign-on (SSO)
    An improvement on our existing scenario but still worth looking into the details. I have managed to setup the Single Sign On between the two solutions, as well as the ability to pick multiple records for remediation.
  6. MDG-C: New Workflow Template-content based workflow routing
    Content-based routing is a well-known requirement for a master data related processes. This demo will show you the brand new MDG standard template which supports also parallel processing of content based routing. Triggering the process is done from NWBC or from Fiori app.
  7. MDG-M: BRFplus workflow – Content based routing on Material Group
    Content based workflow routing for material master data.
  8. New MDG-DMS Integration
    This will show you the new capabilities around integration of Document Management Services and MDG including a side panel graphical display to view attached images.
  9. MDG-M: Multiple Record Processing
    Was introduced with MDG7 and has interesting features available.
  10. Like & Lean UIs for Customers and Suppliers
    See how simple you can trigger new Change Requests for customers and suppliers. The complexity of the business partner is hidden to the end user.


Again, I look forward to hopefully seeing you soon and I hope we can also talk about other topics and  answer all your questions.
Let’s see us at TechEd && d-code
Best Regards

To get a complete picture of the lectures and hands-on sessions offered in the context of SAP Master Data Governance at SAP d-code 2014 in Berlin, you can simply go to the agenda builder for the event and filter by search term "SAP Master Data Governance”.
This way, you get an overview of all related sessions. From there, you can dig into the individual sessions that you are interested in to get the details.


Here is the agenda builder SAP d-code Berlin (November 11-13, 2014) already filtered for SAP Master Data Governance


Check it out and filter according to your specific needs.



Today, SAP Master Data Governance (MDG) provides applications to centrally create, change and distribute master data. Being highly integrated with SAP Business Suite, MDG re-uses data models, business rules and process logic. It provides pre-build domain-specific content and a flexible framework to define data models, processes, and user interfaces also for custom-built master data.


If you'd like to be informed on the way ahead, you may check the product roadmap for SAP MDG which has just been updated, providing the current picture of the solution today (SAP MDG 7.0 SP02), planned innovations and future trends.


SAP customers and partners can check out the document on SAP Service Marketplace at http://service.sap.com/roadmaps => Product and solution roadmaps => Database & Technology (SAP Master Data Governance: Edition 2014Q3) (SMP log-in required).

Note: See also the roadmap landing page on SAP Community Network at http://scn.sap.com/docs/DOC-33110.


Filter Blog

By author:
By date:
By tag: