Skip to Content

Some customers (who were earlier using WD JAVA ESS and Homepage customizing) are using the homepage framework feature to add custom help pages/additional info pages on the ESS Areapages. This feature is not supported out of the box in the new WD ABAP ESS homepage based on launchpad customizing. The main reason for dropping this feature was to simplify ESS menu definition and encourage the use help center and related links concept. In addition many customers did setup complete homepages using content development tools and deployed as HTML without using homepage framework.

This blog explains how this gap in WD ABAP UI can be plugged easily by customers and include HTML pages on areapage level in new ESS menu based on WD ABAP and launchpad customizing. You can use examples in this blog and create more scenarios to dynamically embed content.

Note: ❗

  • This blog is meant for WD ABAP developers with basic FPM knowledge and does not explain every minor detail or step to create WD Objects
  • The topics mentioned here are only applicable for service map using WD ABAP application HRESS_A_MENU and launchpad customizing
  • In this simple example the App Controller and UIBB are implemented in same WD Component but in real projects you may create different implementations

Steps:

  • First Step: Create a new WD Component that has capability to display some custom html webpages
    • Create a view and include iFrame element (iFrame example was chosen to display a webpage but you are free to decide)
    • Create component controller and context variables so that a URL/Content to be displayed can be bound to iFrame element
  • Second Step: Make sure that WD Component implements following interfaces so that this can be used in FPM configurations. You can add intefaces from the main property page of WD Component (see tab implemented interfaces next to tab used components)
    • IF_FPM_OVP_CONF_EXIT – For usage in OVP floorplan that is used in application HRESS_A_MENU
    • IF_FPM_UI_BUILDING_BLOCK – To be used as UIBB in OVP floorplan
    • In the method OVERRIDE_EVENT_OVP program the code so that based on the selected area page you can display a particular HTML page in addition to service map (sample code attached)
    • In the sample code there is a example that for a target foler (areapage) launched from homepage a particular help web page is displayed in every areapage. You can decide your own logic to decide which help page should be displayed. In our example a folder alias defined in Launchpad customizing is used to decide which help page can be displayed. If you do not want to harcode the helppages then you need some customizing table where mapping is stored. You can implement your own logic to decide what needs to be displayed in help UIBB
  • Third Step: Include the WD Component in FPM configuration
    • In HRESS_CC_MENU_OVP or copied customer configuration go to Edit page (page id CONTENTAREA_2) and add UIBB that was created in First step
    • Go General settings -> Floorplan settings -> Application Controller settings and make sure that WD component created in First step is added as Application Controller
    • Decide on layout options if the help pages are displayed side by side or below using standard FPM options of 1 column layout or 2 column layout

Congratulations. You should be done !!  🙂

With this custom UIBB now you are able to display specific HTML pages (or any other information) you like in addition to standard service map displayed from Launchpad customizing. You can try out various variants to think of more customized stuff you want to create in your custom UIBBs.

Hope this blog helps you to provide a basic understanding of how developers can add custom UIBBs to ESS homepage.

If you have done some similar intersting implementations for Homepage then share them with community.

Feedback/comments welcome if you find this useful.

***********************************************************************************

Detailed Screenshots:

Step I & II: Create WD Component and Views, Implement FPM interfaces

Step I.png

Step II: Code snippet for OVERRIDE_EVENT_OVP

METHOD override_event_ovp .

  DATA: lt_content_areas TYPE if_fpm_ovp=>ty_t_content_area,
        ls_content_area  LIKE LINE OF lt_content_areas,
        ld_link_text     TYPE string,
        lr_event         TYPE REF TO cl_fpm_event,
        lr_parameter     TYPE REF TO if_fpm_parameter.

  DATA:  lv_target_folder_alias TYPE string,
         lv_target_url          TYPE string.

  lr_event = io_ovp->get_event( ).

  IF lr_event->mv_event_id = if_fpm_constants=>gc_event-change_content_area.

    CALL METHOD io_ovp->get_content_areas
      IMPORTING
        et_content_area = lt_content_areas.

    READ TABLE lt_content_areas INTO ls_content_area WITH KEY id = ‘CONTENTAREA_2’.
    IF sy-subrc = 0.
      lr_parameter = lr_event->mo_event_data.
*      lr_parameter = io_ovp->mo_event->mo_event_data.
      lr_parameter->get_value(
        EXPORTING
          iv_key = if_fpm_guibb_launchpad=>gc_link_text
        IMPORTING
          ev_value = ls_content_area-title ).
* Set the title to be displayed
      TRY.
          CALL METHOD io_ovp->change_content_area
            EXPORTING
              is_content_area = ls_content_area.

        CATCH cx_fpm_floorplan .
      ENDTRY.

* get the folder alias that was clicked in the homepage
      lr_parameter->get_value(
        EXPORTING
          iv_key = ‘TARGET_APPLICATION_ALIAS’
        IMPORTING
          ev_value = lv_target_folder_alias ).

*    Change the html help area based on the target folder alias
*    You can implement any logic you want and pass the context atttributes for the target view

      DATA lo_nd_helpnode TYPE REF TO if_wd_context_node.
      DATA lo_el_helpnode TYPE REF TO if_wd_context_element.
      DATA ls_helpnode TYPE wd_this->element_helpnode.
      DATA lv_helpurl TYPE wd_this->element_helpnode-helpurl.

* navigate from <CONTEXT> to <HELPNODE> via lead selection
      lo_nd_helpnode = wd_context->get_child_node( name = wd_this->wdctx_helpnode ).

* get element via lead selection
      lo_el_helpnode = lo_nd_helpnode->get_element( ).

      IF lv_target_folder_alias = ‘AREA_PERS_INFO’.  “Name of alias in launchpad
        lv_helpurl = ‘http://en.wikipedia.org/wiki/Employee_Self_Service‘.
      ELSEIF lv_target_folder_alias = ‘AREA_WORKING_TIME’. .
        lv_helpurl = ‘http://en.wikipedia.org/wiki/Working_time‘.
      ELSE.
          lv_helpurl = ‘http://help.sap.com‘.
      ENDIF.

      lo_el_helpnode->set_attribute(
        name =  `HELPURL`
        value = lv_helpurl ).

    ENDIF.
  ENDIF.

ENDMETHOD.

Step III: Include the WD Component in FPM configuration

Step III.png

And Finally the results 🙂

Result 1: Showing Personal Information Area page

Result1.png

Result 2: Showing Record Working Time Area page

Result2.png

To report this post you need to login first.

15 Comments

You must be Logged on to comment or reply to a post.

    1. Sagar Joshi Post author

      Hi Mark,

      Yes it is possible. In the standard role delivered in PFCG the WD ABAP application HRESS_A_MENU is not used instead the service map of NWBC is used to show homepage. However if you need to add custom pages then you can do the steps in the blog and include this WD Application as a Homepage.

      There is no available solution to extend service map of NWBC directly.

      Regards, Sagar

      (0) 
      1. Raghavendra Prabhu Mithal

        Sagar, can you please let me know on two things

        1. How to make HRESS_A_MENU as the landing page in NWBC HTML

        2. If I dont want HRESS_A_MENU as landing page and use the standard landing page in NWBC HTML, how do I customize the landing page, I dont find documentation anywhere.

        Your help is very much appreciated.

        (0) 
      2. Raghavendra Prabhu Mithal

        Hi Sagar,

        If I am using the service Map instead of WD application for the landing page, is it possible to use to Badi HRESS_MENU to hide unhide links. I dont see it stopping in the Badi when I launch NWBC.

        Thanks Raghav.

        (0) 
        1. Shankar Reddy Chamala

          it will control, you can make visible or invisible in this method based on your country or custom validations.

          use the badi’s HRESS_COC_MENU_BADI and HRESS_COUNTRY_FILTER in HRESS_MENU.

          use the method MODIFY_APPLICATION_ATTRIBUTES for service level to hide

          use the method MODIFY_FOLDER_ATTRIBUTES for folder level to hide

          (0) 
          1. Raghavendra Prabhu Mithal

            Thanks Shankar. I guess this Badi is only called when you use this application HRESS_A_MENU as your landing page. If  I use the default standard landing page which comes up by just configuring PFCG role, I dont think this gets called. how do I modify the screen without using the application HRESS_A_MENU. Any Ideas?

            (0) 
            1. Shankar Reddy Chamala

              Even though if you use PFCG role and run in the NWBC it will trigger the same BADI.

              No need of modifying the application HRESS_A_MENU.

              You just need to integrate your service in Launchpad or PFCG role level and implement that BADI.

              For your testing purpose assign the PFCG role of ESS and run the NWBC_LAUNCH service from T-code SICF in ECC side. In this case also that BADI will trigger.

              (0) 
              1. Raghavendra Prabhu Mithal

                Thanks Again Shankar, but the Badi triggers only if you use the application HRESS_A_MENU as your landing page. but if I use the default landing page then it does not go through. I guess there is no way of modifying the screen other than using multiple role assignments approach.

                (0) 
                  1. Raghavendra Prabhu Mithal

                    Yes Sagar, I tried using that. For the default landing page there is no impact based on my coding in the badi. Basically a break point in this Badi does not stop while launching the page.

                    Yes I used my role as the filter for this BADI. I created another implementation and used my role as the filter.

                    Thanks,

                    Raghav

                    (0) 
  1. Paulo Poínha

    Hi Sagar,

    I have a little issue with making this work, it seems when I add the code to update the context from the OVERRIDE_EVENT_OVP it does not update the node, but if I place it on the WDDOINIT then it updates the context. I am not an ABAP expert, but is there anything specific I should do ? Could you please help ? Is it because the method is from the interface that it cannot update the controller context ?

    Thanks,

    Paulo Poinha

    email: paulo.poinha@pasafin.fi

    (0) 
  2. Karthik SK

    Very valuable information Sagar.

    We have a requirement to call a POP Portal Page (link goes like “ROLES://portal_content/com.<removed>”) instead of a weblink (and to show on the standard ESS Page similar to yours). Do you know how to achive this? Any comments would be very helpful. Thanks!

    (0) 

Leave a Reply