Tips & Recommendations for customizing ESS Menu (WD ABAP)
Customers and Consultants always have questions about possibilities and recommendations for adopting ESS Menu. This blog tries to address certain topics that will help to make decisions for best possible apporach that fits your requirements. This blog is not meant to give a step by step instructions since there are already few discussion/blogs on this forum regarding this.
First of all always read documentation:
Question 1: Why so many roles – PFCG role, Launchpad role and Portal role and what should I use?
Launchpad Role: Launchpad role/instance is required to visualize the ESS menu using WD ABAP application HRESS_A_MENU with configuraiton HRESS_AC_MENU. This application uses a WD Component that reads the lauchpad role/instance (ESS/MENU) and displays the UI.
PFCG Role: PFCG role is required for 2 purposes. The first purpose is very important since it is how the backend ABAP server decides the authorization profile for performing activities. Second purpose is for UI visualization if customer wants to use NWBC HTML or NWBC Desktop version instead of SAP Portal. This role acts as entry point for menu rendering. Standard SAP role is SAP_EMPLOYEE_ESS_WDA_1
ℹ Note: Even in case of NWBC HTML or Desktop version you can use the WD Application HRESS_A_MENU and instead of NWBC visualization you can use launchpad based menu. In case of NWBC It is recommended to use the default NWBC visualization since it is a lightweight stateless UI.
Portal Role: Portal role is required in case you use SAP Enterprise portal to provide an entry point. Portal role provided with Business Package for Employee Self-Service (WDA) 1.50. This is a lightweight role which just has few iViews. Most important iView contains menu application (HRESS_A_MENU) and few other iViews for navigation purpose (OBN).
For Portal customers you need: Launchpad role (UI Visualization), PFCG role (authorization), Portal role (entry point)
For NWBC customers you need: PFCG role (UI Visualization + authorization)
Question 2: How to customize Launchpad role?
Most common misunderstanding is that standard role ESS/MENU must be copied. Customers are allowed to edit standard launchpad since SAP maintains a different version for SAP and customer. Even if SAP ships changes then customer version is not overwritten. At any point customer can see SAP delivered version even if they add/edit some entries in ESS/MENU. You can see a menu in LPD_CUST -> Extras -> Show SAP Version
???? Steps if you directly edit standard launchpad role ESS/MENU:
- Just edit ESS/MENU directly using transaction LPD_CUST
???? Steps if you copy standard role launchpad ESS/MENU:
- Copy and change launchpad role using transaction LPD_CUST
- Create a new Application/Application Configuration, Copy the Component configuration (alternatively in config/admin mode or enhancement mode change the component configuration)
- In the component configuration add the new/copied launchpad role
- In Portal copy the standard BP (with delta links) and create/copy the iView for Menu application and change the application/Application configuration parameters (this step is not required if you enhaced/configured standard component configuration)
Still wondering which way to proceed?
ℹ Note: For PFCG and Poral role customizing there are established practices so this blog will not discuss this point.
Question 3: I need different menu for different set of users, how to proceed?
Most common requirement is that I have different set of services offered based on employee groups, regions and what not ….
There are 2 choices:
???? Choice 1: Dynamic menu rendering
In this case you create only 1 launchpad role/instance (or PFCG role) and based on BAdI HRESS_MENU you decide which users get which links visible. In SAP standard implementation only COUNTRY is used decide which applications are visible per country of user
ℹ Note: Same BAdI works for PFCG based roles as well since NWBC processes the BAdI at runtime after PFCG tree is built
- Go to LPD_CUST or PFCG depending upon access channel or portal or NWBC, Select roles and define application alias for every application where dynamic filtering should happen
- Create a BAdI implementation and assign alias as a filter value, implement your own logic
- No duplicate copies of same applications in different roles
- A common portal/pfcg role can be assigned to all users.
- No change in role assignment required for different set of users whenever they move across organizations, jobs, locations, countries (Global employment)
The only disadvantage is you need ABAP programmer to do this BAdI but is that a real problem?
???? Choice 2: Static menu structure and duplicate copies
- Create multiple role/instance in LPD_CUST or PFCG roles (you may use the repository type of launchpad to reduce maintenance)
- Create multiple copies of Application Configuration, Component Configurations (not required for NWBC)
- In case of Portal consumption – Create multiple iViews for menu application and create multiple roles with different entry points
- Assign Portal roles to users or PFCG roles to users
- Forever maintain whenever employees change their organizations, jobs, locations ..etc
- Multiple copies of roles leads to long term maintenance
- Additional efforts for copying of WD configurations and portal iViews and roles
- User maintenance is more complicated
Still wondering which way to proceed?
Question 4: I need better visualization and custom pages, integration in other portals (e.g. Sharepoint)
Many customers decide to go this way by creating static/dynamic custom HTML pages, portal content editing tools to create menu structures. This option is always available but more expensive to implement and long term maintenance.
Check these blogs which may help
Embedding WD ABAP Self Services in custom buit pages and external portals
Adding custom pages (HTML or simple text) in ESS Homepage/Areapages (WD ABAP)
As you can see there are lotsof configuration possibilities and Hope this information helps in making better informed decisions regarding which way to go.
Do let me know with your comments if there are more scenarios that you have faced which made you to go in a different solution direction!!!