SAP Knowledge Base Article - Public

3204900 - [Onboarding] Multiple pay components

Symptom

  • Difference between legacy approach and New approach while mapping pay component from RCM to Onboarding

Environment

SAP SuccessFactors Onboarding

Resolution

Pay Component Mapping Configuration

Approach 1: Legacy Approach 

In the legacy approach we follow below steps:

1) Create a custom field to hold pay-component.

2) Map this custom field to both pay components against field "pay-component".

In this approach, based on pay-component field value only one that has matching pay-component code as its value will be considered for candidate.

Example:

Let say below fields are mapped and value flowing down are as follows. In this approach, as we rely on pay-component field value to apply the pay component. Only entries that are matching will be processed for candidate (here it is only 1000). Note: This is onboarding specific functionality. This skipping the entire pay-component logic will not work in RCM-EC flow.

Pay Comp 1: Processed for Candidate Successfully

payComponentRecurring.paycompvalue.1000: {EntityRecordFieldValue: {rawValue: 36.34, localizedValue: 36.34, rawObject: 36.34}}

payComponentRecurring.currency-code.1000: {EntityRecordFieldValue: {rawValue: ABC, localizedValue: ABC, rawObject: ABC}}

payComponentRecurring.frequency.1000: {EntityRecordFieldValue: {rawValue: HOURLY, localizedValue: HOURLY, rawObject: HOURLY}}

payComponentRecurring.pay-component.1000: {EntityRecordFieldValue: {rawValue: 1000, localizedValue: 1000, rawObject: 1000}}

payComponentRecurring.custom-string9.1000: {EntityRecordFieldValue: {rawValue: TEST, localizedValue: TEST, rawObject: TEST}}

payComponentRecurring.start-date.1000: {EntityRecordFieldValue: {rawValue: 2021-11-18, localizedValue: 11/18/2021, rawObject: 2021-11-18, dataType: date}}

Pay Comp 2: The Pay-component will not be processed for Candidate as there is discrepancy between pay-component code and the external code passed. It even will not validate other attributes of the same variant and skip the whole variant all together.

payComponentRecurring.paycompvalue.2000: {EntityRecordFieldValue: {rawValue: null, localizedValue: null, rawObject: null}}

payComponentRecurring.currency-code.2000: {EntityRecordFieldValue: {rawValue: ABC, localizedValue: ABC, rawObject: ABC}}

payComponentRecurring.frequency.2000: {EntityRecordFieldValue: {rawValue: HOURLY, localizedValue: HOURLY, rawObject: HOURLY}}

payComponentRecurring.pay-component.2000: {EntityRecordFieldValue: {rawValue: 1000, localizedValue: 1000, rawObject: 1000}}22. payComponentRecurring.custom-string9.1000: {EntityRecordFieldValue: {rawValue: TEST, localizedValue: TEST, rawObject: TEST}}

payComponentRecurring.custom-string9.2000: {EntityRecordFieldValue: {rawValue: TEST, localizedValue: TEST, rawObject: TEST}}

payComponentRecurring.start-date.2000: {EntityRecordFieldValue: {rawValue: 2021-11-18, localizedValue: 11/18/2021, rawObject: 2021-11-18, dataType: date}}

Limitation: This solution is specific to Onboarding functionality where any recruitments between RCM and EC without Onboarding will not be skip based on this logic. 

Approach 2: New recommended approach post B2111 - None are mandatory other than paycompvalue and any custom fields. - Solution is inline to RCM - EC Flow.

1) In Recruit to Hire Mapping, map only single field paycompvalue - one field for each pay component.

2) Provide paycompvalue only for pay components that are applicable for candidate. Others which don’t contain paycompvalue will be skipped.

In this approach, other values are derived as follows without a need of explicit mapping.

Pay-component - Mapping is not required for the Pay Component Recurring field pay-component in Recruit-to-Hire Data Mapping.

Currency   - the value is taken from the FO if you don't map in Recruit-to-Hire Data Mapping. If the value is not available in FO, then the value for the field is taken from the legal entity. If the value is not available in the legal entity, then the value for the currency-code field is taken from the legal entity country.

Frequency   - the values for the Pay Component Recurring and Pay Component Non-Recurring fields are populated from the FO. If not maintained, error is created in the Business Process Engine (BPE) flow.

StartDate   - Employment start date will used as start date for Comp Recurring entries.

Please refer this section https://help.sap.com/viewer/c94ed5fcb5fe4e0281f396556743812c/2111/en-US/206e07fdf1e9495586f02b08bb2580f3.html?q=Pay%20Component for more details.

Examples for better understanding

Example 1: Based on below mapped details, Pay Component (2000) will be skipped as none of its fields contain value. As Pay Component (1000) contains value, this will get processed.

Pay Comp 1: Processed for Candidate Successfully

payComponentRecurring.paycompvalue.1000: {EntityRecordFieldValue: {rawValue: 22.00, localizedValue: 22.00, rawObject: 22.00}}

Pay Comp 2: Will not be processed for Candidate

payComponentRecurring.paycompvalue.2000: {EntityRecordFieldValue: {rawValue: null, localizedValue: null, rawObject: null}}

Example 2: Based on below mapped details, even though paycompvalue of  Pay Component (2000) is null, it has additional field frequency and custom-string9 which has some value. In this case, Initiation will go into error flow as data provided partially against entity record 2000.

Pay Comp 1: Processed for Candidate Successfully

payComponentRecurring.paycompvalue.1000: {EntityRecordFieldValue: {rawValue: 22.00, localizedValue: 22.00, rawObject: 22.00}}

payComponentRecurring.custom-string9.1000: {EntityRecordFieldValue: {rawValue: TEST, localizedValue: TEST, rawObject: TEST}}

payComponentRecurring.frequency.1000: {EntityRecordFieldValue: {rawValue: HOURLY, localizedValue: HOURLY, rawObject: HOURLY}}


Pay Comp 2: Processed for Candidate but will Fail as Pay Comp Value is null

payComponentRecurring.paycompvalue.2000: {EntityRecordFieldValue: {rawValue: null, localizedValue: null, rawObject: null}}

payComponentRecurring.custom-string9.2000: {EntityRecordFieldValue: {rawValue: TEST, localizedValue: TEST, rawObject: TEST}}

payComponentRecurring.frequency.2000: {EntityRecordFieldValue: {rawValue: ABC, localizedValue: ABC, rawObject: ABC}}

In approach 2, against each entity (1000 and 2000), application will look for entity record that contains value for any of the mapped fields.

- when it contains only one field mapped (paycompvalue), record will be skipped if there is no value passed.

- when it contains multiple fields mapped (paycompvalue and frequency), record will be skipped only if both fields don’t contain any value passed from RCM.

In approach 2, pay component recurring entity record will be assigned only when any of mapped fields contain value. When none of the field carries data, it will get skipped from consideration. This is the same logic even RCM - EC flow apply while displaying in Manage Pending Hire.

Keywords

Pay-component, multiple pay-component, Onboarding 2.0, RCM, Onboarding , KBA , LOD-SF-OBX-RCM , Integration RCM , Problem

Product

SAP SuccessFactors Onboarding 2205