Greetings to all exciting people working with SAP SuccessFactors Time Off Module (And not Only!)!
In this blog today I would like to go over with you on some very nice and practical functions we have in Time Off Business Rules Engine, which help us to produce automatic recalculations on Accruals.
This is especially important, in cases where a customer has different attributes and variables that need to be taken into account on their Accruals Calculations but at the same time, they might be dynamic or frequently changing.
An important note for you to be aware at this point is that when we are talking about such changes, we mean changes that take place on Employee’s Job Information Portlet.
So, somehow we need to create such a mechanism where all these changes that are taking place in the system will always be taken into account and affect at a real time the employees’ accruals.
As a general note, have in mind that the system supports triggering of:
- Recalculations on Accruals
- Recalculation on Absences
- Recalculation on Timesheets
and we can also run these recalculation events manually if this is needed. What this means, is essentially that the Admin User is able to run a Job so that the existing accruals or Absences get recalculated based on some changes that have taken place in the system.
For example, we might need to manually run a recalculation event if we change something in one of the Time Objects the employee has assigned: Holiday Calendar, Work Schedule, Time Profile. Any changes within one of these objects, require a manual recalculation.
To achieve this, we can use the “Time Management Recalculation Event” object. We can find more details about this with this implementation guide: Recalculation in Employee Central Time Management.
The same object is being used to capture all the automatic recalculation events we will review in this blog.
Moving on though, to our topic:
First of all, we need to be aware of the system setup in order to be able to activate the automatic recalculation option in the system.
We should be able to do this once, and it will work for all accruals created from that point.
The first setup, is to create a record in the “Time Management Configuration”. This needs to be created with the exact External Code as in the screenshot below. What this record does, is essentially start taking into account all Job Information changes after the date we assign in this record.
Second, we need to activate the automatic recalculation in the relevant Time Types and Time Account Types, where we need this recalculation to take place. First on Time Type:
Then on Time Account Type:
- Here it is important to include all fields we would like to take into account for recalculations. These fields should come from Job Information changes on employee’s profile.
Among the most common scenarios where we need to add Recalculation Fields in our Time Account Types are:
- FTE Change
- Standard Weekly Hours Change
- Eligibility Change (in change an employee goes on a Leave of Absence)
- Or it can be another attribute which needs to be taken into account in the Accrual Rules calculation (always an attribute in the Job Information though!)
Last, but not least – Include the fields we would like to take into account for any recalculation event in our Business Rules. Let’s put into context some specific Business Rules and how we can apply the recalculation fields:
Change of FTE throughout the year:
Case Scenario: We have an Yearly Accrual so the accrual amount is posted only one time on Accruable Start Date (Usually set on 01st of January). Throughout the year the FTE might change. With each change the original Accrual Amount posted on 01st January needs to be recalculated based on each change of the FTE amount.
Since we have an Yearly Accrual, we will get the same result for all changes in the FTE if we just calculate the Average FTE Value that has occurred throughout the Yearly Accrual Period. The calculation on the specific screenshot above will take into account number of months with different FTEs in order to result to an Average FTE.
Especially with FTE, have in mind that there are several different Variations of Business Rules we can use to get Average FTE for a Period. It is important to understand what is the difference of each function, so that we can get the exact recalculation we want based on our requirement.
We can find out more details about the differences in these functions in the guide: Employee Central Time Management: Rules and Concepts
We could include this function in case we would like to recalculate Accruals based on the employee’s Leave of absence requests posted on their Time Off Workbench or in case we would like to find in our Business Rule the number of Eligible Days an employee has during the year.
Case Scenario: We have an Yearly Accrual so the accrual amount is posted only one time on Accruable Start Date (Usually set on 01st of January). Throughout the year the employee goes on a Leave of Absence for several months. Since the employee is not available for work during these months, there needs to be a recalculation on their total Accrual eligibility allowance that was posted on beginning of the year.
Now, specifically for the Eligibility Change Scenario, we will also need to do the below steps in order to activate this feature. First, we need to specify in the “Time Off Configuration” object, all Eligibility Rules, and include all Time Account Types where we would like to freeze Accruals, in case the employee goes on Leave of Absence. To do that, we will need to specify the Leave Of Absence Employee Job Information Status, as well as the Eligibility Status in each case. If we need these criteria to work only for specific Time Account Types, then we should also specify the Time Account Types (otherwise leave that column empty).
For more information on this feature, we can review the section of “Time Off Configuration” in Time Off implementation guide.
Standard Weekly Hours:
Case Scenario: We have an Yearly Accrual so the accrual amount is posted only one time on Accruable Start Date (Usually set on 01st January). Throughout the year the employee’s Standard Weekly Hours might change. With each change the original Accrual Amount posted on 01st January needs to be recalculated based on each change of that field.
We need this function, so that we can make sure we get all changes that take place on Standard Weekly Hours during the Accruable Period. If we did not use that function, we would only get the Standard Weekly Hours Amount that the employee would have on the exact time the Rule was triggered, so only on 01st January. Instead, with this function, we take always the latest change on that field (that’s why we use the accruable end date in the parameters).
Example: Employee needs to accrue Vacation on an Yearly Basis. Annual Entitlement needs to be adjusted based on the Standard Weekly Hours. Annual Vacation Days is kept on employee’s Job Information Portlet to keep a relevant amount.
Accrual Calculation rule: (Annual Vacation Days * Standard-Weekly Hours)/12
Standard Weekly Hours on 01/01/2020: 40
Annual Vacation Days on 01/01/2020: 5
Accrual Rule on 01/01/2020: (5*40)/12 = 16.66 days
Standard Weekly Hours needs to change on 01st July 2020 to: 25
Accrual Recalculation on 01/01/2020: (5*25)/12 = 10.41 days
To promote an accrual recalculation on such fields, SAP SF provides three very nice functions we can use, depending on the field type we need to use.
- Get Job Info Date Field Value on Key Date()
- Get Job Info Numeric Field Value on Key Date()
- Get Job Info String Field Value on Key Date()
Some important points we need to have in mind when using these functions:
- Always assign the field with the external code taken from Business Configuration Screen – Job Information Portlet (Data Model) – Do not assign the field in the Rule from navigation to the corresponding Job Information Field
- Make sure the field we are using for this rule is not a Picklist or a Record from an Object – The Rule will only support fields which are free text (Date, Number, String)
So, here it is, you can now use in your Business Rules useful functions so that you can produce Accrual Recalculations! The above consists only the foundation (the least steps you can do) to achieve this. Of course, your business requirements along with your imagination can go much beyond that!!
I hope you enjoyed this blog and as always any feedback or comments on your personal experiences is welcome!