SAP delivered Business function HCM, Manager Self-Service – Performance Optimization with OADP (HCM_MSS_OADP_1) with HR Renewal 1.0 (EA-HRGXX 607 SP10). The main focus of this delivery was to offer enhanced MSS (Web Dynpro ABAP) that is optimized for performance with improvements to Object and Data Provider (OADP).
Motivation for the Development
The existing versions of Manager Self-Service were recommended to be used only for middle level Manager (Note 922267). This was due to inherent performance bottlenecks experienced for the Manager users that have high number of employees. This limitation was a challenge for customers who wanted to implement the solution for senior level Managers. Also at some customers that have flat hierarchical organizations, middle level Managers also had high number of direct employees and experienced performance issues. Of course, this was not a desirable situation and needed a solution.
Let us have a look deeper look at a typical Manager Self-service application and try to understand what were the existing performance issues.
Above screenshot shows schematic diagram of MSS Homepage application. This application contains many UI blocks that display summarized data for the team. If the Manager user is a senior manager, some of the UI blocks also includes information of the team members in the teams of his direct reports. As you can imagine, there is lot of processing involved here. Lots of data including all the details team members is read from the Database; once they are read, the data is further processed to create summary information.
The overall process is expensive, and we try to save processing as much as possible. Also, the data in these UI blocks do not change often – for e.g., when the Manager views the Homepage, navigates to Inbox and navigates back to the Homepage, it does not make sense to read the database and prepare it all over again. For this reason, we already use a persistent buffer with Object and Data provider (OADP). System always reads from this buffer. The buffer is updated in cases when the Database is read for fresh data. This works well in most of the times.
However, for some use cases this was not enough. Performance issues cropped up whenever the system accessed the Database fro new data.
- when user logged in for the first time
- when user logged on and the system finds that the buffer validity has expired
- when search is performed in team viewer
Below is the screenshot of application with user pain points highlighted
SAP delivered Business function HCM, Manager Self-Service – Performance Optimization with OADP (HCM_MSS_OADP_1) with HR Renewal 1.0 (EA-HRGXX 607 SP10). This enhancement is already available to customers since 21st March 2013. The Business Function is part of HR Renewal 1.0 SP10. You can find more details about HR Renewal 1.0 SP10 here: http://help.sap.com/erp_hcm_ias_2013_01.
Enhancements included Optimization, UI improvements and Utility report
- The direct Database read by the application is improved – the OADP APIs used by the Manager Self-service have been optimized. The new versions of the API’s are 3x times faster when compared with the existing version.
- The Homepage UI blocks were optimized for performance. The end to end response time is now 1.7x faster when compared with the existing version.
The improvement factors may vary from customer to customer depending on system setup and configuration. Our internal improvement measurements considered with a Manager that has 200 direct reports or/and 2000 indirect reports with Threshold set to 100 (more on Threshold later).
We also wanted to cover uses cases of Managers who had a very high number of employees in their team. Despite the optimization in the APIs and the Homepage application, when you have to process a very large number of employee data there is more processing time needed. The user does not know this and always demands high levels of system response. In the enhanced version of MSS, the Homepage intelligently responds to the Refresh command of the user.
If the Manager has a large number of employees, the system triggers an Asynchronous update of data (the default is set to a value greater than 100). When Refresh command is given, the user is greeted with Update Started message. The user can continue with other tasks on the Homepage and is not held back until the refresh is complete (see the screenshot below):
Once the Asynchronous refresh is completed, a notification is pushed to the Homepage. The Update completed message automatically displayed on the screen (see the screenshot below)
If the manager has fewer employees (the default is set to a value less than or equal to 100), the system triggers a Synchronous update of data. The Synchronous refresh is optimized. The response times are better (1.7x times) when compared to the previous version; optimal performance can be expected for direct employees up to 200 (see the screenshot below)
The decision making value that makes the system decide to switch between Asynchronous and Synchronous mode is called Threshold. Default value is set to 100 and is fully customizable (the performance of the system depends on various factors and this flexibility is needed).
Utility report – RS_MSS_OADP_UPDATE_BUFFER
There are situations when the buffer validity expires and the system needs to refresh the data when the user logs on to the system. This will be understood by the regular users. However, the users who log on very rarely to MSS (for e.g., very Senior Managers that have delegated day to day activities to their subordinates), are faced with the unpleasant task of facing the system triggering a refresh every time they log on to the system.
To address this challenge, the enhancement also includes a utility report, that can be used to update the Buffer data. This report can be setup to update the Buffer data in batch mode on a flexible basis. For e.g., while setting up the batch job, you can choose specific Managers who have very high number of employees.
As usual, the solution is highly flexible and can be configured to suit every implementation.
- The Threshold value can be configured, and will be considered by both utility reports and the MSS applications
- If you have configured your UIs (for e.g., you do not use all the UI blocks of MSS Homepage, or have your own custom UI blocks in Homepage), you can make the system also consider them
More information and links
Detailed information regarding the enhancements, configuration options and the per-requsites for implementation is available in