MDG-M UI Performance Secrets
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):
- 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
- Upgrade to the latest kernel
Kernels are backward compatible, and the latest ones benefit WebUI performance a lot. Ask you Basis for details.
- 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:
- Open the FPM FLUID component configuration you want to change (e.g. Form for Basic Data)
- In “General section“, press button “Feeder class parameters“
- Leave the entry for “Entity” blank
- 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.
- Open the OVP configuration you want to change in Display mode
- From the menu, choose Enhance and create a Create Enhancement. Specify a name from the customer namespace and continue.
- In the UIBB Schema, select the UIBBs you do not need and Delete them from
- 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.