Working with different clients, I noticed a common trend in ESS Requirements. Most of the clients I worked with, wanted to have some specific application visible for only a specific country or for a specific set of people such as store employees (for Retail organization), yardmasters (for railroads), executives (for banking organization) or certain services visible on specific conditions such as an ESS application link is visible only for employees above a specific band or level.
After doing a bit of research I found the use of SAP standard functionality - Dynamic rendering of Services.
This blog focuses on understanding this functionality given by SAP and its usability in different scenarios.
Let us understand this concept using an example.
Requirement - Enable one of the custom ESS applications only for store employees which can be mapped to organizational or personnel structure.
For a Retail Company, which has many frontline store employees, the requirement is to have the application Store Spending amount (Custom WD ABAP Application) enabled only for store employees. With this application, store employees can check the amounts they have spent at the store. Here, the store employees are differentiated based on their specific organizational structure.
In standard configuration, ESS Application visibility access is controlled based on Country Grouping, but this requirement was to control based on personnel or organizational structure. So, for this scenario we considered the Organizational structure since the retail store employees were mapped to a personal sub area. This should get determined dynamically based on user’s log in, his employee number and his organizational structure.
For such scenarios, Dynamic rendering of services functionality is being used.
This functionality makes use of standard BAdI’s given by SAP:
With the help of these BAdIs, the attributes of an application can be changed dynamically at runtime eg. Hide/show, enable/disable etc.
For the requirement stated above, I made use of the BAdI, HRESS_MENU.
When using this BAdI Implementation, Application Alias need to be defined in Launchpad Customizing under Advanced Parameters. The Application Aliases will control the dynamic processing of portal services. Application aliases are used as a key to control application attributes.
The step by step process to do this in system is described below:
Step 1 - Go to Launchpad Customization, LPD_CUST
Step 2 - Select the specific Application and mention the Mandatory and option parameters.
Step 3 - Provide the Application Alias as the personal sub area
For the eg taken above, personal sub areas ending with ‘06’ are for the retail store employees. This is used as a key to control the application attributes in the BAdI.
Step 4 - Once you define the Application Alias as the personal sub area(06 – for store employees), the next step is to set the condition in the BAdI, HRESS_MENU such that, if the logged in employees personal sub area is not ending with ‘06’, then set the service attribute CV_ISVISIBLE to invisible for application where application alias = ‘06’
This will ensure that the employees, who are not from personal sub area ending with 06, do not see the custom application - Store Spending amounts.
The HRESS_COUNTRY_FILTER BAdI is active in standard SAP delivery and this implementation checks the COUNTRYGROPUNG parameter.
Few other scenarios where this functionality can be used is:
Enable Stock Options
Organizational Structure (Executives, VPs)
Enable Requisition related links
Role based (Recruiter, HR Admins)
Enable Tax related links
Country Grouping based (W4 for US, Form 16A for India)
Enable Time Card related links
Personnel Structure (for hourly employees, temporary employees)