SAP Knowledge Base Article - Public

2530482 - How to use the Country object in Pay Range Derivation

Symptom

The requirement is that you want to use the "Country" (countryOfRegistration) of the Legal Entity to derive the Pay Range used in the Compa-Ratio and Range Penetration calculated fields in the Compensation Information element.

Environment

  • SAP SuccessFactors HXM Suite
  • SAP SuccessFactors Employee Central

Reproducing the Issue

The following association was added in the Corporate Data Model xml under the hris-element for Foundation Object "payRange"

<association id="id" multiplicity="ONE_TO_MANY" destination-entity="Country" required="true"/>

Cause

If the Pay Range should depend on the Country of the Legal Entity, it is not sufficient to add just the following association:

<association id="id" multiplicity="ONE_TO_MANY" destination-entity="Country" required="true"/>

Resolution

The reason for this association not working (which leads to the wrong Pay Range being derived by the UI) is that there is no standard field of type “Country” in the "jobInfo" hris-element table (and the country-of-company field does not count). If the value is not there in jobInfo, the Pay Range Derivation cannot match the value and therefore the "next best match" is used.

The system will not derive the "Country" from the field "country-of-company" in the "jobInfo" hris-element, as it is a picklist field (Picklist = ISOCountryList) and Picklists cannot be used in Pay Range derivation.

In order to use the "Country" object as an association for the Pay Range, it is necessary to:

  1. Add a custom-string field of type "Country" (i.e, with the flag type=”Country) to the "jobInfo" hris-elementin the Succession Data Model (or via Admin Centre > Manage Business Configuration)
  2. Create a Business Rule to fill this field based on the "Country" value defined in the object "LegalEntity" (field on the object is "countryOfregistration").

 

Solution

Please follow the steps below to implement this logic in full, so that "Country" can be used in the Pay Range Derivation logic.

 

 

Step 1) Add the following association to your "payRange" object configuration (via the Corporate Data Model xml)

  • <association id="id" multiplicity="ONE_TO_MANY" destination-entity="Country" required="true"/>

 

Step 2) Add the new custom-string field to jobInfo as type=”Countryvia Manage Business Configuration

  1. Navigate to Admin Centre > Manage Business Configuration > select the hris-element "jobInfo".
  2. Scroll to the bottom of the field list and in the last row (the bank row) - select a currently un-used "custom-string" field (in our example we used custom-string60 - but any will work).
  3. Give the new field a label (such as "Country") and add it to the relevant "Section" if you are using the HRIS Sections feature.
  4. Click "Details" for this new field and set the values as per the table below. (XML example is below the table)
  5. Click "Finished" in the "Details" pop-up. Move the field up the list of fields and place it as needed.
  6. Then scroll to the bottom and click "Save"

Manage Business Configuration > Details (mentioned in step "iv" above)

Details Field Value
Enabled Yes
Required Yes
Type of Reference Object Foundation Object
Reference Object Country
Visibility Edit
Maximum Length 256

XML example (field should be explicitely added in "jobInfo" hris-element)

      <hris-field max-length="256" id="custom-string60" visibility="both" required="true" type="Country">
        <label xml>Country</label>
        <label xml:lang="en-US">Country</label>
      </hris-field>

 

Step 3) Create a Business Rule to propagate the new custom-string field with the "countryOfRegistration" (Country) value held on the "LegalEntity" object (jobInfo.company)

  1. Navigate to Admin Centre > Configure Business Rules > click "Create New Rule".
  2. Select "Basic" and then fill in the Basic rule attributes as per the Rule Attribute Table below.
  3. Set an IF condition (do not use Always True) - standard check is - IF Job Information.Company IS NOT EQUAL TO Null
  4. Set the THEN condition to - THEN SET Job Information.Country TO BE EQUAL TO Job Information.Company.Country
  5. Click Save

Rule Attribute Table

Rule Attribute Value
Rule Name <Insert a name that makes sense to you, and easily identifies what this rule will do>
Rule ID <Insert an ID with no spaces, that makes sense and easily identifies what this rule will do>
Start Date 01/01/1900
Base Object Job Information

 

Example Business Rule to set "Country" (custom-string) field

Country_Prop_Rule.jpg

 

Step 4) Add the Business Rule triggers to the jobInfo configuration

Here it is a good idea to trigger this rule in 2 scenarios - onChange (of Company field) and onSave of jobInfo element.

  1. Navigate to Admin Centre > Manage Business Configuration
  2. Select the hris-element "jobInfo"
  3. Click "Details" next to the field "Company" (LegalEntity field)
  4. Scroll to the bottom of the Details pop-up and in the "Trigger Rules" section, select the Base Object (Job Information), the Event Type (onChange) and select the Rule you created in "Step 3"
  5. Click "Finished"
  6. Scroll to the bottom of the jobInfo element and in the "Trigger Rules" section, select the Base Object (Job Information), the Event Type (onSave) and select the Rule you created in "Step 3"
  7. Click "Save" at the bottom of the page

In the new hire UI (Admin Center/Add New Employee), none of the two defined previous rules will be triggered before saving the new employee.

Therefore the “compa-ratio” and “range penetration” may not be correctly calculated in the compensation information entity.

It is then necessary to trigger this rule in a third scenario – onChange of a field that is mandatory and that will be updated in the jobInfo element.

Example:

  1. Navigate to Admin Center > Manage Business Configuration
  2. Select the hris-element "jobInfo"
  3. Click "Details" next to the field "Position"
  4. Scroll to the bottom of the Details pop-up and in the "Trigger Rules" section, select the Base Object (Job Information), the Event Type (onChange) and select the Rule you created in "Step 3"

 

Step 5) Ensure that all Pay Ranges now have a "Country" defined on them.

  1. Please refer to article 2271107 - How to export Pay Range Foundation Object for value check

 

If you have any futher issues related to the UI deriving the correct Pay Range, please refer to KBA 2136061 - How to determine which Pay Range is used in the Compa-Ratio and Range Penetration calculations - Employee Central - which covers the topic in full.

 

See Also

  • 2136061 - How to determine which Pay Range is used in the Compa-Ratio and Range Penetration calculations - Employee Central
  • 2315202 - Employee Central - Data Model XML & UI

Keywords

ECT-80459, ECT-66506, payRange, Pay Range, Derivation, compa-ratio, range-penetration, Compa Ration, Range Penetration, employee central, compInfo, jobInfo, , KBA , LOD-SF-EC-FOO , Foundation Objects (Organisation, Pay and Job Structures) , LOD-SF-EC-JOB , Job Information , LOD-SF-EC-CMP , Compensation Information & One-Time Bonus , How To

Product

SAP SuccessFactors Employee Central all versions ; SAP SuccessFactors HCM Suite all versions