Symptom
When attempting to run the Snapshot Calendar, the process fails with the following error in the logs:
Caused by: java.lang.NullPointerException: Cannot invoke "com.successfactors.absence.bean.employeetime.EmployeeTime.getApprovalStatus()" because the return value of "com.successfactors.absence.bean.employeetimeaccount.TimeAccountDetail.getEmployeeTime()" is null.
Environment
SAP SuccessFactors Employee Central – Time Management
Reproducing the Issue
- Navigate to Manage Time Off Calendar.
- Run the Snapshot Calendar.
- Verify the status of the job; it should show as failed with no logs.
- Obtain the logs by checking Monitor Jobs in the Provisioning System.
Cause
The root cause of the issue is that there is an employee time entry within the Time Account that does not have a corresponding reference to the EmployeeTime object or the time calendar, which is necessary for processing the Snapshot Calendar.
Resolution
Run the Check Tool to detect any inconsistencies.
-
Navigate to Check Tool > Application > Time Off and run the Check Tool for all parameters.
-
Look for the parameter TimeAccountDetailWithoutEmployeeTimeReference to identify the affected data.
-
Navigate to Manage Data > Time Account and search using the external code (you can also export and import the Time Account Detail if needed).
-
Delete the specific employee entry or add the missing employee time and time calendar reference, then save the action.
-
Run the Check Tool again to ensure there are no errors across all parameters, not just the "Time Account details of type 'Employee Time' having employee time references (TimeAccountDetailWithoutEmployeeTimeReference)."
After completing these steps, the Snapshot Calendar should run successfully without encountering the error.
Keywords
Caused by: java.lang.NullPointerException: Cannot invoke "com.successfactors.absence.bean.employeetime.EmployeeTime.getApprovalStatus()" because the return value of "com.successfactors.absence.bean.employeetimeaccount.TimeAccountDetail.getEmployeeTime()" is null, TimeAccountDetail.getEmployeeTime()" is null, EmployeeTime.getApprovalStatus(), TimeAccountDetail.getEmployeeTime, Caused by: java.lang.NullPointerException: Cannot invoke "com.successfactors.absence.bean.employeetime.EmployeeTime.getApprovalStatus, Caused by: java.lang.NullPointerException, Cannot invoke "com.successfactors.absence.bean.employeetime.EmployeeTime.getApprovalStatus, Check Tool Time Off, Time Account Detail Error, Employee Time Reference Issue, Snapshot Calendar Failure, Time Account Inconsistencies, TimeAccountDetailWithoutEmployeeTimeReference, Absence Management Check Tool, Manage Data Time Account, Employee Time Calendar Reference, Time Posting Error Resolution, NullPointerException Snapshot Calendar, Snapshot Calendar, Snapshot, Calendar failure, Snapshot calendar failed, snapshot calendar failed without logs. , KBA , LOD-SF-EC-TIM-CAL , Calendar Jobs , LOD-SF-EC , Employee Central , LOD-SF-EC-TIM , Time Off , Known Error