Symptom
You have a set of custom fields in advances that are not to be displayed for all advances and/or employees and you need to define the visibility of these fields based on criteria such as: advanceType, advanceEligibilityCode, country or any other filters you define.
Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental.
Environment
- SAP SuccessFactors Employee Central - Advances
Reproducing the Issue
- Select one employee;
- Go to Eligibility For Advances;
- Click on Request Now;
- See that all the customer fields are displayed;
Resolution
In order to achieve this business need you need to perform two levels of configuration as explained below:
- Under Configure Object Definitions > Advance you need to configure the Condition and Condition Value as explained below:
- First define which field will be the condition so based on the value of the condition field, the customized field you are configuring will be displayed or not, in this case the condition will be advanceType. Just remember that advance type is the object so you need to also send the field inside that object that has the value "advanceType.externalCode";
-
Instead of advanceType.externalCode, customers should use advanceEligibilityCode.externalCode as the Field Id
Why to add the ".externalcode"? Because the external code it the Field Name of the object loaded in the field advanceType.
- After adding the field Id in the Condition you need to add the condition values, so when the condition values match with the value in the Advances UI the field will be displayed:
- After doing this, you just need to save and the first part of the configuration is done;
- The second part is to add the fields in the UI under manage configuration UI > AdvanceConfigUI;
- Add the custom field (if you have not already done this, set the Value Type as Resolver and in the Value Type Resolver field you'll navigate into the object to select the correspondent field in the MDF object:
- After doing this you just need to save the UI and the filter is done;
Note: In the symptom we described that you can add the filter based on country for example but in this case there is a limitation. Country will need to be filled by the employee manually so if they select the wrong country then undesired fields will be displayed, the best practice is to meke use of eligibility rules to define which advances the employee has access to request and the eligibility rule can consider criteria such as legal entity, country, etc.
FAQ - Additional Information
Q) Where can I get information on this from the Guide?
A) Guide:Implementing Advances
Chapter:Defining Rules to Determine Eligibility for and Employee or MDF Custom Field Limits on Pre-delivered and Custom MDF Generic Objects
See Also
- 2673591 - Advances: Configuration
- 2597879 - How to customize Advances UI to display some field based on defined criteria for more information
- 2318720 - Employee Central - Advances & Deductions
- 2438887 - Metadata Framework | How to create a custom field for a MDF Object?
- 3367750 - [custom MDF] the displaying order of conditional fields set in MDF object
- 3525552 - Custom MDF object fields are displayed with field Names instead of the UI/field Labels
Keywords
Advances UI customization, filter fields in advances,customize advance UI, advanceType.externalCode, advanceEligibilityCode.externalCode custom field, field critreria, loan, MDF custom filed, MDF aboject, advance , KBA , LOD-SF-EC-ADV , Advances , How To