ESS Personal information scenario is one of the most commonly and heavily customized scenario. With Enhancement package 5 a newly architected ESS Personal profile was released based on WD ABAP and FPM. The backend parts remained mostly same as JAVA scenarios but some new layers and customizing options are introduced. This blog gives  “Architectural Deep-Dive” to understand what are extension possibilities and in which layers.

This blog assumes that you are familiar with basic infotype concept, with using customizing tables, BAdIs and FPM configurations.

 

See diagram below to understand layers of coding and configurations

 

ESS_PersInfo Layers.png

 

 

Layer 1: PA Infotype framework

IMG: Personnel Management -> Personnel Administration -> Customizing Procedures -> Infotypes

ESS personal information scenario uses “Decoupled Infotype framework”  . In this layer the actual business logic is implemented. This logic is independent of ESS and is reused in other layers as well. The logic is implemented by means of a business logic check class.  If you decide to implement a change in logic of existing infotype or decided to create a new infotype then you start at this layer.

Customizing options

Transaction PM01 – Enhance or create new infotypes

Business logic check classes: V_T582ITVCLAS, V_T582ITVCHCK

BAdIs:

HRPAD_SUBTY_CHECK – Validation of permissible subtypes (normally not needed due to standard customizing tables)

HRPAD00INFTYBL – To create customer specific validations and update logic

HRPAD00INFTYDB – To write DB update logic (e.g. to write additional customer tables or log tables)

Customizing field attributes: V_T588MFRPOPS (SAP standard), V_T588MFPROC (customer specific)

Test Transaction: PUIT_UI can be used to validate the changes made

 

Layer 2: PA UI Conversion Layer

IMG: Personnel Management -> Personnel Administration -> Customizing Procedures -> Infotypes

In this layer the infotype structures are adapted so that they can be easily consumed in UI consumption layers built above. Screen structures are created so that they have fields required for UI layers like description and text fields, fields from infotype views ..etc. For infotypes which have repeat fields (like wagetypes in 0008) line structures are created. For each UI structure a conversion class (defined in T588UICONVCLAS) is used which performs input/output conversion from infotype stuctures to screen structures. In this layer the screen structures are created such that each country version has its own structure.

This layer needs to be considered if you have created a custom infotype or extended standard infotype structures with custom fields which require some explicit input/output conversion.

You can use this layer if you need to change some metadata of UI fields (like mandatory, hidden)

Customizing options

Transaction PM01 – Enhance or create new infotype UI parts

UI Logic Conversion classes: V_T588UICONVCLAS

BAdI: HRPAD00INFTYUI – To write UI conversion logic, mapping of fields and field attribute determination

Test Transaction: PUIT_UI can be used to validate the changes made

 

NOTE: Enhancements done in Layer1 and Layer2 are independent of ESS and are also applicable for other scenarios like HCM Processes and Forms and in future releases for HR Administration UI. If you write any logic or change any attributes then they will be also applied in other UI screens

 

Layer3: ESS Adapter Layer

IMG: Personnel Management -> Employee Self-Service (Webdynpro ABAP) -> Service-Specific settings  -> Personal Information

On top of UI conversion layer ESS Adapter CL_HRPA_PERNR_INFTY_XSS is developed. This layer performs ESS specific operations like Create,Read,Update,Delete. This layer performs some specific extensions to business logic by providing specific customizing options.

Examples of customizing options: ESS specific timeconstraint handling also known as ESS use cases which control visibility of Create, Delete, Update buttons and display of validity fields. This layer also restricts which subtypes are allowed for ESS. In this layer also specific logic of reuse of country version structures for other countries are allowed.

Customizing options

V_T7XSSPERSUBTY – Assign permissible infotypes and Use cases (time constraints and validity periods)

BAdI HRXSS_PER_SUBTYPE – Programmatically control visibility of subtypes and use cases that can not be statically defined via V_T7XSSPERSUBTY

V_T7XSSPERFORADD & BAdI: HRXSS_PER_FOREIGN_ADDRESS  – Define permissible Foreign Address handling

V_T7XSSREUSEUISN – Allow reuse of country versions screens in other country versions

BAdI: HRXSS_PER_BEGDA – Control visibility of records and set default begin dates[GK1] . For e.g., to enable past data editing. Or, restrict editing to starting from future date – for e.g., begin of next month.


Layer4: BOL/GenIL layer

IMG: Personnel Management -> Employee Self-Service (Webdynpro ABAP) -> Service-Specific settings  -> Personal Information

The Business Object Layer (BOL) model is a programming concept that allows for uniform application development, decoupled from interface changes in the underlying business-object-specific Application Programming Interfaces (APIs).

This layer initially built for CRM UI is now used in many business suite applications.

For HCM the model name is HRPAD. As of now this model is used for ESS but in future releases this model is used for even HR Administration scenarios. The model is implemented by a Generic Interaction Layer class CL_HRPAD_IL.

This layer needs to be considered only when a new custom infotype needs to added.

Customizing options

Transaction: HRPAD_EDIT_MODEL – To introduce new infotypes

Transaction: GENIL_MODEL_EDITOR – To check and transport models

Test Transaction: GENIL_BOL_BROWSER  can be used to validate the changes made and data is visible in BOL (This transaction needs some knowledge and not very easy to test)

 

Layer 5: ESS UI Layer using FPM

FPM Layer offers countless number of possibilities to enhance the standard applications so you need to decide what really needs to be changed and for which portions you want to copy standard configurations or feeder classes.

http://scn.sap.com/community/erp/hcm/employee-self-service/blog/2012/06/07/enhancing-essmss-wd-abap-applications-based-on-fpm

 

Layer 5.1: UI Feeder classes

Personal information Overview and detail screens are built using FPM GUIBB. The metadata, actions and events are processed using FPM feeder classes CL_HRESS_PER_OVERVIEW and CL_HRESS_PER_DETAIL. In some cases there may be infotype specific feeder classes.  In case if you are not able to achieve logic enhancements using any layers below then this is your last fallback option.

 

Layer 5.2: UI Configurations

Personal information scenario uses FPM Overview floorplan (OVP).  HRESS_CC_PER_OVP is the component configuration that can be enhanced to add/enhance the UI blocks

For every infotype screen a list and detail configuration is created. Example HRESS_CC_PER_OVR_BANK_XX and HRESS_CC_PER_DTL_BANK_XX. You need to enhance these to create customer specific configurations

 

Layer 5.3: UI Composition Configuration

Personal information profile uses various country specific configurations dynamically. This is achieved by Application controller component HRESS_C_PERSINFO_CONFIG. You can configure HRESS_CC_PER_CONFIG to dynamically replace the UIBBs.

In standard implementation the dynamic assembly is done based country/molga of employee but you can use BAdI HRESS_PER_CONFIG_KEY so that other parameters like Employee group, Subgroup can also be used.

 

WD ABAP Application

WD Application HRESS_A_PERSINFO is used with application configuration HRESS_AC_PERSINFO. You can also pass some application parameters to influence the UI behavior (e.g. starting from enhancement pack 6 you can make profile read only)

 

 

Some typical scenarios to enhance ESS Personal profile

Note: You have many alternative ideas to implement every scenario but this table just gives a guidance

Layer 1-4 requires backend customizing and development knowledge to implement BAdI

Layer 5 requires FPM knowledge

 

Apart from this you may go for implicit coding enhancement options at various layers but it is not recommended since SAP may change internal processing logic in future releases.

 

Scenarios

Possible Layer affected (customizing required using customizing tables or BAdIs)

Changing field attributes - making field mandatory, read-only, hidden

Layer 1 & 2 if this is not specific to ESS

E.g. V_T588MFPROC or BAdI HRPAD00INFTYBL or HRPAD00INFTYUI

Layer 5.1 and 5.2 if this attribute change is specific to ESS using configuration or feeder classes

Adding or removing existing fields from SAP standard Infotype in ESS UI which are not shipped in default configuration

Layer 5.2

Adding or removing customer specific fields in SAP Standard infotype & include them in ESS UI

Layer 1 and 2 – structure changes in customer include and if required UI conversion logic or Business logic validations

Layer 5.2 – Add new fields

Filtering subtypes for ESS only, Changing the timeconstraint for ESS (controlling actions like new, edit, delete button), configuring foreign address scenario

Layer 3

ESS subtype usecases are not sufficient and need more dynamic control to decide if certain action buttons like add, delete should be visible

Layer 5.1

Adding completely new customer infotype

Layer 1,2 - decouple new infotype using PM01

Layer 3 – optional (only if ESS logic is required)

Layer 4 – Add new infotype in BOL

Layer 5.2 (5.1 and 5.3 optional)

Missing country version for standard infotype or reuse another country version

Layer 3 (if reuse is required from different country)

Layer 5.2 and Layer 5.3

Adding new business logic checks & validations

Layer 1 (assumption is that business logic checks are independent of ESS)

Updating other infotypes from ESS infotypes

Layer 1 using BAdI HRPA00INFTYBL

Updating customer specific tables or log files

Layer 1 using BAdI HRPA00INFTYDB

Post processing like triggering some mails/notifications

Use standard processing as far as possible using SWEHR* transactions and standard event processing.

If this is not sufficient then use BAdI HRPA00INFTYDB in Layer 1

 

If you have more scenarios which you have customized using different technique then do let me know and I can try to include them in the blog!


This blog is just to inform developers and consultants who are not familiar or not following SCN Floorplan manager space.

 

In last days, when reading the SCN Discussions and Blogs I realized that many developers and consultants have not realized the potential of WD ABAP and Floor plan manager. There have been few blogs and discussions where it has been advised to copy SAP Applications and application configurations to satisfy customer specific requirements (e.g. to hide a particular UI Block from personal profile or to change some customizing from ESS Menu). The biggest disadvantage due to this is corrections and improvements of configurations delivered by SAP which affect the original application will not reach the copied entities of your application. This is particularly important since SAP will add new content in enhancement packages and if you have always copied applications then this is more effort to adapt post installation of enhancement package (and I have to admit that there are no great tools that can tell what delta was changed in configurations across releases ).

 

WD ABAP and FPM provides various alternatives and simpler solutions in some use cases.

 

Following adaptation options are possible:

  1. Copy Application
  2. Enhancement
  3. Customizing and Personalizing
  4. Modification - Not really recommended
  5. Context-Based Adaptations (CBA)

 

First 3 are very interesting options from ESS/MSS perspective and you should always try to see if some basic things can be achieved in the customizing mode (or called as administrator mode using SAP-CONFIG-MODE = X). If that is not possible then decide to go for enhancement or deep copy application.

In case you need a very dynamic UI based on a backend context value (like MOLGA, EE Group) then you can consider CBA option

 

You will find detailed explanation of various adaptation options in SCN Floorplan manager space.

Please read this important document http://scn.sap.com/docs/DOC-28799 also go through other documents like FPM developers cookbook.

Although the document is based on NW 7.31 release which is valid for enhancement package 6 you will find introduction of important concepts which are valid even if you are on enhancement package 5 level (NW 7.02 level)

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:

http://help.sap.com/erp2005_ehp_05/helpdata/en/ae/f1788ae9084f0bb85c962b9e38c2ed/frameset.htm

 

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

 

Steps:

  • 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

Advantages:

  • 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

Steps:

  • 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

 

Disadvantages:

  • 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 lots of 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!!!


Personal Information scenario is one of the widely used application in ESS since it allows easy maintenance of employee data. With enhancement pack 5 a new personal information scenario based on WD ABAP was offered which already had a great flexibility and configuration possibliites.

However many customers were asking for features for which many of consultants and developers did some additional implementations and sometimes workarounds

 

With enahncement pack 6 some features are available out of the box. See screenshots and descriptions below.

Al new set of parameters and features are documented:

http://help.sap.com/erp2005_ehp_06/helpdata/en/0b/619597eeea4c7382abd9ff3b734f55/frameset.htm

 

Hope you find the features below exciting and this avoids some customizing/enhancement work on customer side to suit various customer specific scenarios.

Do let us know if you find these featues useful or scenarios that still needs further enhancements.

 

Read Only Profile:

This has been a long standing demand to offer a read-only version of Personal profile for certain use cases at customers.

By setting application parameters READ_ONLY_PROFILE_WITH_DETAILS = X the whole profile can be launched in display mode (no locking of employee).

It is also possible to just provide Overview screens with no details using parameter READ_ONLY_PERSONAL_PROFILE = X

Note: It is also possible to define parts of profile as Read Only. This can be configured using customizing view V_T7XSSPERSUBTY or BAdI HRXSS_PER_SUBTYPE.

 

Subtype specific UIBB:

Some customers wanted to have a different UIBB and different set of fields to be displayed on Overview screens for every subtype. This was not possible in Enhancement pack 5. With enhancement pack 6 you can define via configuration which subtypes should be displayed or which subtypes should be excluded from a particular UIBB. To do this open the UIBB configuration and provide the "Include or Exclude" subtype parameters of the feeder class CL_HRESS_PER_OVERVIEW.

You can see the example screenshot with "Emergeny Address" as a seperate UIBB with different set of fields.

Note: In enhancement pack 5 it is still possible to hide/show subtype specific fields using customizing of V_T588MFPROPC but it is not possible to create completely a different UIBB configuration per subtype.

Performance notes: In general do not make different UIBB for subtypes since it has implication on runtime and memory.

 

UI Integration with HCM Processes and Forms:

Some customers do not allow employees to edit data directly and they need workflow based forms to complete the data changes. In those scenarios it is possible to use HCM processes and Forms to request data change. With enhacement pack 6 there is a UI integration available by which a button is added on the UI that lauches the configured processes.

Use the application parameter WORKFLOW_MODE=X and PROCESS_GROUP=<Name of HCM P&F process group>

Customers can decide which of the Infotype/Subtypes are editable directly in Personal profile and for which others a workflow mode is required. This can be configured using customizing view V_T7XSSPERSUBTY or BAdI HRXSS_PER_SUBTYPE.

Note: You must be using HCM P&F and configured workflow based processes to make the whole scenario complete.

 

 

Multiple Overview Screens using same configuration:

It may be possible that you may use different variants of the Personal profile in different contexts in ESS. Example: You may have a general profile that shows a list of infotypes and another variant that is specific to benefits to show additional infotypes. It is now possible that you create multiple Overview (MAIN) pages in OVP component configuration (HRESS_CC_PER_OVP) and using application parameter PROFILE_VARIANT_ID you can pass different Overview pages to be launched by application parameters. This avoids copying the main OVP configuration (HRESS_CC_PER_OVP) multiple times.

 

EHP6 Personal Profile.png

 

 

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

As developers of SAP self services we are often asked how to embed our applications in custom pages/external portals. There are examples where customers have built beautiful customized entry pages for self services using HTML & content authoring tools. From these pages they would like to navigate to SAP or custom built WD ABAP applications of ESS/MSS.Many times they try to embed direct application URLs but then some application links/actions do not work since they use internal navigation to another application using OBN (Object based navigation).
So what is the correct way to embed WD ABAP services in a custom built page running in a non-sap portal?
Always use NWBC HTML as a wrapper; Use NWBC HTML in app/embedded mode.
NWBC (hidden mode) will tkae care that OBNs defined in PFCG role works for applications
Example:

  • window=app: starts an application window without navigation elements of NWBC shell 
  • window=embedded: starts the shell in rendered format that is embedded in foreign portals; this mode is particularly interesting if you would like to use the feature of NWBC like service map
UI Options possible:
  • Embedding set of applications using service map (e.g. ESS)
You can either use WDA application to render service map based on launchpad customizing or use NWBC feature to render service map based on PFCG
The start URL of a Web Dynpro ABAP application for ESS homepage with certain Web Dynpro ABAP specific parameters can look as follows:
To embed complete ESS role in an external portal, you can use for example an NWBC for HTML link that selects a complete role and shows a service map for the role:
Note:
use parameter decoration=no_branding  Hides the SAP branding logo in embedded mode.
configure applications open in a new window from service map in case of launchpad
  • Embedding Individual applications
You can build complete custom pages and include links to individual applications as follows.
However if you go for this option then you will loose out on some dynamic features offered by standard ESS homepage like hiding country specific services or modifying texts of services
Advanced features:
NWBC offers REST/HTTP based services that can export content in ATOM format that can give information like assigned PFCG roles in backend system. You can use this information to generate dynamic links. You can even think of advanced scenarios like logical mapping of systems to generate URLs.
There is also export of navigation tree possible.
See section 6.5 of documentation  found in NWBC help area or search NWBC in help.sap.com
Other things to think about:
  • SSO - Single Sign on in case you call self services from external portal - check documentations available already
  • Themes: To provide uniform experience you should consider atleast basic theming to match but there is no standalone theme editor is supported as of now. You can search SCN for theming related topics and downloads of eclipse based theme editor
  • Other URL parameters like accessibility mode: In case you need to support mapping of parameters like accessiblity mode from your source page then you may need to do some programming to pass these parameters
  • more ... (when I find more time to think for advanced issues ...)
Hope you find the information useful in your pojects. If some of you have interssting experiences and challenges faced in this topic please share them
Some example screens on a test sharepoint system I created
Example showing full homepage embedded
Homepage In Sharepoint.png
Example showing individual applications and custom application embedded on same page
Embedded mode WD APPS in Sharepoint.png

SAP delivered with enhancement pack 5 (Business Suite Innovations 2010) & MSS Add-on 1.0 WD ABAP based Self Services UI. The main focus of this delivery was to improve the end user efficiency, effectiveness and intuitiveness based on new UI guidelines. Additionally we addressed many TCO drivers in terms of offering the solution with much UI configuration possiblities and offering the self services without bundling with SAP Enterprise Portal.

 

With new offering of ESS/MSS there was still a feedback from customers (and our sales folks) that the new UI should look modern, have new fresh icons, remove too many shades of blue in the screen.. etc. For sure there are theming possiblities that are well known using theme editor in portal environment but there is effort to adjust look of WD ABAP applications to detailed level (some things like icon changes not possible). Due to efforts many customers did not do extensive theming efforts of applications but only adjusted shell areas in portal and branding. There was also additional issues related to upgrade of themes with backend upgrades.

 

To address this we started with a project jointly between Visual designers, rendering experts, application developerss to provide a new visual identity for ESS/MSS applications (to be followed in other HCM and suite areas later). This new visual identity is called by a theme SAP_CORBU. Corbu derives name from Le Corbusier a Modern Swiss architect and designer . The name also indicates the goals that the new theme should be modern, neutral so that it fits very well with various shells/portals and simple from look and feel perspective.

 

This new theme is now released for ESS/MSS customers based on enhancement pack 6 (Business Suite Innovations 2011). Theme objects are available from NW 7.31 SP02 with enhancements in SP03. Release information and restriction of usage of this can be found in SAP Note 1681640.

 

What do you get with this theme?

  • A new modern, simple looking theme that improves overall look of Self Services; Increased sizes and fonts improves readability
  • Newly adopted NWBC HTML shell that matches new theme for applications
  • HCM specific flash islands (including Nakisa Org chart viewer) matched to new theme
  • Neutral and better fitments of color scheme when used in non SAP portals like sharepoint
  • Large set of new icons and pictograms that are modernized with new theme without affecting existing icons in older themes
  • Enhanced look for specific controls example: panel stack
  • Possibility to activate the theme per backend system and per application (ignoring portal theme when used in SAP Portal environment)

 

Is there any impact on custom WD ABAP applications?

  • In most cases there are no effort for applications since the new theme works for all WD ABAP applications out of the box. However visual verification of UI is recommended to be performed to check for any truncation of texts or misalignment due to increased font sizes and line height
  • If applications have used old icon library ICON_* then new icons will not be loaded. Only icons ~icon/* can be used. Please see note 1681640 for details

 

Hope you like this theme and we would love to hear how you perceive this new theme as a self service developer and end user for self services.

 

I have attached some comparison screenshots that I find most intersting to give overview of new look.

 

Screenshot1: Shows the newly designed NWBC HTML shell and pictograms (rendering the ESS Service map based on PFCG role)

NWBC HTML  ESS Homepage.png

 

Screenshot2: Shows the newly designed MSS Homepage with team view flash islands themed for Corbu

MSS Homepage.png

 

Screenshot3: Shows the employee profile with new panel stack visualizations and complete new icon set

ESS Profile.png

 

Screenshot4: Shows the employee leave request with new panel stack visualizations, calendar design

ESS Leave Request.png

Filter Blog

By author:
By date:
By tag: