Skip to Content

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).

In Summary:

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!!!

You must be Logged on to comment or reply to a post.
        • Hi Sidharth,

          you are doing excellent work..

          Just need to ask one question.." how to move wd java services to wd abap services"..

          because we are upgrading the portal from 7.1 to 7.3..

          we are in the middle of the upgradation..

          so kindly please reply quickly..

          thanks and regards,


          • Thanks, I would appreciate if you could also post this as a thread.

            To start off you need to activate the switches, assign the roles for ehp5/6 you are going to upgrade. Read more on this note 1685257. Its pretty straight forward to be honest. start doing it and if you face any issues , put it in a thread.

          • Hi Siddharth,

            Thanks for the information.i will post this as a thread.

            just one question..i have a wda service "usa time statement".

            how can i find the actual wda application name and package ..

            this sounds a silly question..but i am stuck on that..

            please reply as soon as possible.



          • Hi Siddharth,

            Thanks so much for your earlire comments.Appreciated that.

            Just One more Query.

            Suppose I need to make a new home page framework with respect to the old HPF.

            There i need to show some specific services.

            So how do i copy the old HPF and put it in the new HPF.Because most of the area and sub area will be same..just to tinker little bit in the new HPF.Please reply quickly.

            because i am stuck in the middle of the developement.



  • Nice to see someone sharing this content!


    Might be worth touching on actually transporting your Launch Pad configuration too - I've been forced to use SAP packages for the transports or getting dumps due to namespace conflicts (guess when just customising the existing this doesn't worry people so much!)


    I probably agree about the ease of just updating the standard launch pads, however, there are some BIG advantages to having a custom ESS/MSS launch pad. It means you can refer to and test out stuff in the "standard" launch pad but have your reduced/altered functionality in your custom launch pad. Saves having to have a separate"virgin" system and really helps when you're trying to do something a little more complex.


    Great content - thanks!

    • Thanks Chris.

      I will try to include some content regarding transports. There is also FPM cookbook with a small chapter about transports of launchpad.

      Also since the Launchpad is client dependent object you may be able to to test in different clients when comparing with SAP standard functionality. It is also possible to read complete launchpad and copy it using RFC connection to client/system.

      I wanted to stress the fact that if you copy too many configurations then getting next set of enhancements with subsequent EHP is more work.

      Regards, Sagar

      • Hi Sagar,


        To your point about the more enhancements for subsequent EHP - I'd be pushing even more for a custom launchpad. Just so you can clearly compare the standard with custom (without having to have a separate client!). As for the transports - it really does get messy - you get client dependent workbench transports for new texts - try explaining that to your basis team!

        But in general I agree with you - the ability to allow "standard" objects to be configured with customer customising is a nice one that make things much simpler, albeit a pretty foreign concept to most.

  • Nice job sagar, it really helped me, I have one question so without portal (Installing  Java Stack ) using NWBC we can build ESS for the client right, We are in ECC- EHP5




    • Hello Pavan,

      It is possible to use ESS without Portal and Java stack in EHP5 using NWBC. However if you are using specific functionality like US Benefits then you still require JAVA stack since not all services are available in ABAP.

      Regards, Sagar

      • Hi Sagar,


        Can you please clarify one of my doubts.  Before Netweaver 7.3 when we used to use Homepage framework, we used to copy the ESS and MSS roles in PCD as a Delta Link Copy to custom roles so that any customizations done on iviews would not get overwritten in case SAP came up with some upgrades.  What should be the strategy deployed when we implement ESS using Netweaver 7.3 as here we use launchpad and in case of WebDynpro ABAP applications do not link up with PCD but with ABAP Devlepment Workbench.





  • Hi Sagar,


    Thanks for this great blog. I will refer to it often. I have
    another question. We are implementing some new WDA components in both ESS and
    MSS. We are on ESS Java with the Java HPF and MSS java/htmlb. (Yes I know very
    old.) There is a note that specifically addresses the deployment options for
    ESS including the ABAP Launchpad, NWBC, Portal and specifically mentions an
    option to use targeted replacement of java components with ABAP while still
    using the java HPF. We are doing that.


    In MSS we will be adding Clock in/out and the newer versions of
    the CATS timesheet, approvals, etc. in WDA. For the new approvals area in MSS I
    had it in mind to use the new launchpad. I was thinking of the launchpad as a
    generic ABAP framework that could be plugged in anywhere needed. Is that the
    case? I am seeing only references to ESS and MSS Reporting that lead me to believe
    that these may be "hard wired" solutions in SPRO.


    Thanks Again,



    • Launchpad is a generic framework and used in many areas apart from ESS/MSS as a reporting launchpad. You can use them in your custom applications as well.


      You can check the FPM cookbook and documentation for more details.


      It has following main components

      • Backend configuration where services can be configured (Transaction LPD_CUST)
      • Navigation API & API for reading the launchpad repository
      • Frontend WDA UI can be built
        1. Standard Application APB_LAUNCHPAD
        2. By embedding component APB_LAUNCHPAD in custom WDA (E.g. MSS Reporting launchpad)
        3. Generic UIBB component to be used in FPM Applications FPM_LAUNCHPAD_UIBB (e.g. ESS Menu)
        4. Custom UI can be built using Navigation API and API for reading the launchpad repository (e.g. MSS context menu in team viewer)
        • It is worth expanding on Sagar's excellent response. Using the launchpad for navigation purposes in WDA is by far the easiest way to do any kind of app to app navigation. The API is built into the FPM - just check, one of the services that the FPM can return to you is a navigation service. It's also really simple to code from/to. The only downside that I have found so far is that it uses aliases for navigation, and unless there has been an improvement in the 7.03 LPD_CUST code, finding which service corresponds to which alias is a bit of a guessing game.

      1. Hi Doug,


        Even if you are using HPF at the moment in MSS, I'd seriously suggest instead going to MSS landing page that can give a little bit more immediate information for your managers, rather than just a list of accessible services (even if you do some cool stuff with BAdI like the CATS ESS service does to update the texts dynamically). The standard MSS landing page is now so much better post MSS AddOn 1.0 and is easy to improve on. Make/use links to the various approvals pages directly from the main MSS homepage. This exists as standard for CATS and is easy to build for Leave, Performance, etc. Use the FPM launchpad navigation APIs to do your navigation for you .


        If you still feel like using the navigation, it's a simple matter to create a new application configuration of the ESS launchpad and change the launchpad that is called in the configuration (although I haven't checked what this might do to favourites/most used - not sure if those are stored with ref to launchpad used!)

        • Most freqently used services is stored for a launchpad role, instanace for a user. So if you create a new application configuration and used a different launchpad then it should not affect ESS Menu

          • Thanks for the clarification Sagar. I've yet to test that out - the implementations I've worked through have actually removed those views - it wasn't viewed as something useful for employees. Which is definitely the case when you only have a handful of services. Although the functionality would be cool if you had hundreds of choices - with less than 20 it seemed more training to cover something that wasn't particularly useful. For the favorites, I'm always concerned about how you ensure that the employee has authorization for a service that they have favourited - although perhaps it filters the favourites through the list available in the launchpad?


            Again thanks for such great content

          • Hi sagar,

            Awesome article,

            Just wanted to ask "" is there a wd abap versio of change own data ess application"",

            Thanks & regards,


    • Hi Sagar,


      Wonderful content, I am really glad that people are sharing their knowledge on such hot topics in such a clear way.


      Really nice that we have a member here like you. Hats-off. Keep rocking.

      • Hi Sagar,


        We have used approach of modifying sap given standarda launchpad but are facing problem for text changes in QA server.

        Lpd_cust configuration are done for ESS in development with changes saved in one customizing and one workbench request.

        After transporting to quality R3 system, custom text changes(including changes in standard contect) are not reflecting in backend system with message coming that "Not all text exist in language EN".

        Request your inputs on the same. I have raised in forum as well.


        Thanks and Regards,


    • If only I had found this blog earlier... I copied the launchpad and did custom config etc.... it still works but causes problems for delegated navigation classes that point in a hardcoded way to the standard launchpad... goddammn..

    • Hi Sagar,

      i really need to know how to create services in ehp5 in wd abap.Also earlier the services which were in wd java when coming into abap should we need to do any modification there?

      I am new into ehp5..hope you will answer my queries..



    • Thanks Sagar sharing your knowledge  i have a question iam new in WDA  , i Configure R/3 and As well As portal but iam unable  to see all services in portal   what is the reson for this




      • hi satish ,



        which services you are not able to see.....u can see all the services in the launchpad .......are u using launchpad or not ....let us know once......there under ESS MENU u can see all the serives and u can add what ever teh services u wan t add them in launchpad and the same u can see in the portal.........

    • /
    • Hi Sagar,



      I am Michael from kochi. I have just started by carrier in SAP HCM. I need your assistance to build my carrier in SAP HCM. I am working in firm where SAP HCM is used and stated using SAP. Please help me to understand from base of SAP is there any way i can get study material.


      With Regards


    • Hello Sagar,


      Thanks a lot for the nice Article .


      We did a ECC6.0 with EH6 installation. We configure the landing page for Personal administration. Its working fine.


      Can you please guide us how to configure the ESS landing .

      1) How we can get the  My service , Work feeds ....lines in landing page.


      We did below Configuration :

      1)We activated the Business Function (HCM_ESS_UI5_1)

      2) We did O Data services as well as




    • Thanks Sagar

      I initially used the standard launchpad but found that I could not transport these without the creation of a customer namespace.  Is this correct or is there a way around this?

      Is there a link to the FPM cook book?


      Regards and Thanks



    • Dear Sagar,


      Gr8 work,I can see SAP version of Launchpad in LPD_Cust,but I want to delete all custom settings and revert to SAP standard launch to do this??

      • Navigate to LPD_CUST transaction and locate the custom launchpad

        Click on Delete button next for the launchpad to delete the custom version

        Check also SAP Note 1702081 before

        • Hello Sir,


          Please respond on  below as well as



          Thanks a lot for the nice Article .


          We did a ECC6.0 with EH6 installation. We configure the landing page for Personal administration. Its working fine.


          Can you please guide us how to configure the ESS landing .

          1) How we can get the  My service , Work feeds ....lines in landing page.


          We did below Configuration :

          1)We activated the Business Function (HCM_ESS_UI5_1)

          2) We did O Data services as well as




    • Dear Sagar ,

      Firstly,Thanx to your blog has saved a lot of effort in terms of app customization.

      Secondly ,We are facing a strange error ,when I compare standard SAP Launchpad with custom one, in standard Launchpad link text of some applications are missing where I can see them in custom Launchpad.Is this normal behavior or some error .Kindly guide.lpd_cust text missing.JPG

      lpd_cust text missing.JPG
    • Dear Sagar,


      this blog has become bible for me.I read it almost daily.

      I have one doubt,I want to use a sample process from Launchpad HRASR in my ESS Menu.Simply copying it to ESS MENU has showed me desired link.Is this enough to proceed or something more needs to be done.??


      thanx in advance sagar

    • Hi Sagar,

      Really appreciate content provided by you for portal.Always helpful.


      We have customized the MSS WDA launchpad role. Now we are trying to understand where to connect to this launchpad roles so that we can see all contents in portal under MSS tab. From the ESS documentation, I could understand that in component configuration of WDA, we need to provide the z mss launchpad role.

      Is this right?