Symptom
In the Integration Center - You have created a calculated field which calculates the current age for user's.
- Taking the users birth date - current date, and totalling the number of years/days.
You notice that on the users birthday, the correct age is not displayed.
Environment
- SAP SuccessFactors HXM Suite
- Integration Center
Reproducing the Issue
- Create an Integration center job.
- Filter for a user who's birthday is today
- Add a calculated field like the following:
- Field Value = [value:0] Plus Age Calculation [Date to Subtract value:Mon Mar 29 1976 01:00:00 GMT+0100 (Irish Standard Time) path:dateOfBirth] , [Unit of Time value:Y] Floor ==> 47
- plus age calculated: difference between DOB (which we will input from EC field) and NOW (current SF system date/time)
- Date to Subtract value: NOW (current SF system date/time)
- Floor: removes decimal digits
- Field Value = [value:0] Plus Age Calculation [Date to Subtract value:Mon Mar 29 1976 01:00:00 GMT+0100 (Irish Standard Time) path:dateOfBirth] , [Unit of Time value:Y] Floor ==> 47
- Result: 47
- But 48 was expected
- Removing the filter which removes the decimal points, we can see the following result:
- 47.99535465937342
- If you were to check this tomorrow (after the users birthday, you will see the correct value - 48)
- This is unexpected behaviour, as the users birthday is today & the value of 48 is expected
Cause
- Leap years not considered
- Run time affects result
Resolution
To achieve a more accurate age calculation, we consider the number of leap years that have occurred since the user's birthdate. This is why the calculation is displaying "47.99" for a specific user's birthdate, providing a more precise age.
To meet the expected value, please run the job one day after their birthdate .
Keywords
integration center, output file, Age calculation, birthday, birthdate, date of birth , KBA , LOD-SF-INT-INC-JOB , Integration Center Job , LOD-SF-INT , Integrations , LOD-SF-INT-INC , Integration Center , Problem