Some customers, especially in the Public Sector industry, need to know the time an employee occupied a management position within the company to make decisions for their talent processes, such as succession management.
This calculation can be challenging, because usually this information can be obtained only by reading all the historical data contained in Job Information and, additionally, this value changes over time.
Also Read: SAP SF EC Certification Preparation Guide
Another situation that may happen is that the employee might have occupied management positions in a non-continuous way.
In this blog post I will explain how to accomplish this requirement by calculating this value on Employee Central side and synchronizing it to Employee Profile for use by talent modules.
The assumption here is that the time in management position (let’s call it management experience) can be calculated based on Employee Class field within Job Information.
The reason for this assumption, as we will see later in this blog, is because this solution is based on the use of a business rule function called “Get Work History Days ADD ALL”.
For example, let’s consider that the Employee Class is defined as shown below:
The management experience of an employee will be considered the sum of all the periods where Employee Class = Manager.
This solution will take the following steps:
- Create a custom field in Employment Details element, which will contain the number of years of manager experience. This field should be synchronized to a field on Employee Profile for use by talent modules.
- Create a business rule to calculate the management experience based on historical data contained in Job Information, where Employee Class = Manager, and save the result on the custom field created before. This rule will be triggered with onSave Event Type on Employment Details.
- Create an integration using Integration Center to read the Employment Details record and overwrite it with the same data. This procedure is just to trigger the business rule created before.
1. Create a custom field in Employment Details, e.g., named Management Experience:
Synchronize this field to Employee Profile, e.g., custom01:
2. Create a business rule to calculate the management experience, using “Get Work History Days ADD ALL” function. This function should use Employment Details as base object. Although the documentation says that it should be used with Job Information as base object and with onView Event Type, it can be used with Employment Details as base object and with onSave Event Type as well. We will attach this rule to this later Event Type, i.e., onSave.
As the result of “Get Work History Days ADD ALL” is in days, we will divide it by 365.25 (average number of days in a year) and round to two decimal places.
Note that the parameter of “Get Work History Days ADD ALL” is Employee Class. This parameter is used to exclude the non-manager values of Employee Class from the calculation, i.e., only Employee Class = Manager will be taken into account.
This business rule should be assigned to Employment Details, with onSave Event Type:
3. Create an integration using Integration Center, reading Employment Details and overwriting this record with the same data. The objective is to trigger the business rule created before to calculate the management experience and saving the result on Management Experience custom field under Employment Details.
Go to Integration Center and create a new integration by selecting “More Integration Types”.
Select the following options:
- Trigger Type = Scheduled
- Source Type = SuccessFactors
- Destination Type = SuccessFactors
- Format = OData v2
Select Employment Details as Starting Entity:
The Configure Fields step will be used to map Employment Details to Employment Details with the same data:
This integration can be scheduled to run, for example, daily:
When the integration is run, the business rule will calculate management experience and store on Employment Details:
This field is then synchronized to Employee Profile for talent module use: