How to troubleshoot failing Variable Pay Employee History or Bonus Calculation Jobs
Please find below useful techniques to troubleshoot failing EC Employee History Jobs or Bonus Calculation Jobs in a Variable Pay template of SuccessFactors.
First things first : when these two types of jobs starts failing unfortunately the logs we get from Admin Center > Monitor Compensation Jobs will not provide any information (I believe the Product Team has a plan to improve this in the future). The only useful logs we can get (and they can be very useful) are in Provisioning > Monitor Jobs (towards the bottom of the main page) :
There we can filter on Status = Failed then click on Details for the latest job that ran :
For EC-VP Employee History Jobs and Sub Jobs we will see something like this :
And something like this for Run Bonus Calculation :
In these logs we need to try to find anything useful as per the examples above (any text that could point us to what could be a potential root cause).
If you are a customer administrator and don’t have access to that screen please create a ticket to SAP support requesting this log or ping a consultant who has worked with your company previously and still has provisioning access.
If we can’t find anything that makes sense in the logs then we can follow the techniques below.
Troubleshooting EC-VP Employee History Job Failures
- Make sure there are no mappings to EC string-fields (only EC numeric fields are allowed) defined in Plan Setup > Set Bonus Calculation > Bonus Calculation Equation > Field Mappings. See example here.
- Make sure there is data in EC for the fields mapped to the VarPayEmpHist background element columns (mappings can be checked in Plan Setup > EC Employee History Field Mapping)
- Reselect every value in fields tied to a dropdown list in the Records eligibility rule and Filtering rule if there is one (see recording).
- Remove the mapping to EC fields for our Employee History columns until the job is working again then add them back one by one to single out the problematic mapping (see recording).
- Find out with a report which employees have a Termination Date before the effective date of their first Job Info record (see recording)
- If we see a log like this : “Sync Status from scheduler service finished successfully. And marked job status from IN_PROGRESS to FAILED to keep the same status as in S2 Admin Server side.” then it means that either the job was interrupted by a manual action from provisioning Monitor Jobs > “Terminate” (sometimes when a release or a patch gets pushed to a server in the middle of the night they can lead to automatic job interruptions as well) OR that there is a SQL exception related to non-existing picklist. We can retrigger the job without interrupting and check if it goes through. In case it fails again we could check with customer if they could correct the picklist configuration and try again.
Please note that this recording’s intent is to help troubleshooting employee history jobs that worked correctly before they started failing and NOT jobs that are still being built as part of a new implementation. In that case many more things can create failures : fields incompatibility (if we mapped a text field from EC to a number field on the employee history for example) OR if we are incorrectly using the reserved fields : startDate, endDate, vfld5 (varPayProgramName), vlfd14 (currency), ffld1 (basis), recordType.
Troubleshooting Bonus Calculation Job Failures
- Check that each Bonus Plans has an eligibility rule tied to it (whether EC Business Rule or Legacy Business Rule).
- Check the business goals configuration. Make sure there is no business goal of type=Step for which we haven’t provided all mandatory scale points. This can happen if we upload Business Goals via CSV. If we think business goals are the issue (based on the logs or because the failed jobs started happening right after we uploaded new business goals by CSV), then we should delete all business goals and start again by manually creating one business goal and making sure bonus calculation is working fine after that. Once it is working again we can export that successful business goal to CSV and use its pattern/structure from the CSV file to rebuild our full import file.
If we try to run Bonus Calc for one or several employees that are currently on completed worksheets and we do not UNcheck the box “Do not update Completed Worksheets” (which is checked by default) on the Run Bonus Calculation page then the job may stay in the “In Progress” status for several hours (when it should take only a few seconds to be marked as Completed for one employee) and it may end up giving a FAILED status with the error “HibernateException thrown could not extract ResultSet” (see screenshot below). To avoid that we simply need to remember to UNcheck the “Do not update Complete Worksheets” box before running the job for the employee on a completed worksheet.
When MDF Objects are enabled in an environment (which is the case for most environments) then data for Variable Pay Assignment Level Custom Fields (see #3 in this blog for more info about ALCF) is stored in MDF tables and by design there are max 30 numeric fields and 20 string fields allowed as ALCF in that case. We will see FAILED Bonus calc jobs or Bonus worksheet launch jobs as soon as we exceed these limits with error logs as below :
- Wrapped Exception: (…) setCustomStr21(java.lang.String)
- Wrapped Exception: (…) setNumericStr31(java.lang.Numeric)
As a workaround we can switch numeric fields to string or string to numeric and use toString() or toNumber() in the calculated fields’ formulas.
We need patience and a structured approach to fix these issues. They are not easy however it’s easy to panic when all we need to do is slowly revert back to basics until it works again, then build again slowly.
I will update this blog every time I come across potential new root causes that are not yet documented.
If you are a Variable Pay administrator or consultant looking for more insights and tips on the module, you will find additional recordings here : https://blogs.sap.com/2021/03/11/3-key-configuration-setups-to-master-in-variable-pay/
All the best,