Skip to Content

Our customer (on EHP minus 1) decided on a multi country implementation of MSS Add-on 1.0 with the requirement that all fields in ESS should have visibility control based on attributes of employee like Company Code, PA/PSA or EG/ESG.

The standard approach would be to use define multiple screens with required fields, use HRESS_C_PERSINFO_CONFIG to replace per combination and implement BAdI HRESS_PER_CONFIG_KEY for additional attributes. This definitely meets the requirement, however has following maintenance issues from a customer perspective.

  • Introduction of new field in future will have to be added to multiple screens pre-defined across all countries.
  • Any changes to screen for a specific combination defined by business will have wait till the monthly release cycle to be reflected in the portal ( only emergency transports can be moved to production environment between cycles)
  • Most importantly, all changes require support organization involvement (configuration/transport). This should be avoided and had to be maintained by a power user directly in production using a custom table

Approach: Field visibility should be controlled both in Overview Screens and Detailed Screen. We will hide Date of Birth (GBDAT) in Personal Data in the blog.

/wp-content/uploads/2015/06/1_717004.jpg

CL_HRESS_PER_OVERVIEW is the default class used in these UIBBs. We need to enhance 2 methods to achieve the requirement.

/wp-content/uploads/2015/06/2_717017.jpg


Methods: IF_FPM_GUIBB_LIST~GET_DEFINITION

Modify ET_FIELD_DESCRIPTION for GBDAT and Set VISIBILITY as 01.

Store value of VISIBILITY_REF. Export to memory for later use.

/wp-content/uploads/2015/06/3_717018.jpg



Now enhance Methods: IF_FPM_GUIBB_LIST~GET_DATA

Modify LT_CT_DATA

/wp-content/uploads/2015/06/4_717019.jpg

Clear value of component (FPM_BOL_GUIBB_REF_XXXXXXXXXXX) stored for reference field VISIBILITY_REF to initial.

/wp-content/uploads/2015/06/5_717026.jpg

Now, the field GBDAT is hidden in Overview Screen

/wp-content/uploads/2015/06/6_717027.jpg

Detailed Screens:

CL_HRESS_PER_DETAIL is the default class used. We need to enhance 2 methods to achieve the requirement.

In method, IF_FPM_GUIBB_FORM~GET_DEFINITION, for ET_FIELD_DESCRIPTION change visibility of GBDAT to 01 from VISIBILITY

/wp-content/uploads/2015/06/7_717028.jpg

In method, IF_FPM_GUIBB_FORM~GET_DATA, modify CT_FIELD_USAGE. Change VISIBILITY to 01 for and FIXED_VALUES to X for GBDAT.

/wp-content/uploads/2015/06/8_717032.jpg

GBDAT is hidden in detailed screen also.

/wp-content/uploads/2015/06/9_717033.jpg

This approach can be used for standard overview/detailed screens. A custom table can be configured calling the Config IDs and visibility set based on the attributes as required.

Special Thanks to Sonu Krishna

To report this post you need to login first.