Skip to Content
Technical Articles
Author's profile photo Xavier Le Garrec

How to troubleshoot failing Variable Pay Employee History or Bonus Calculation Jobs

Introduction

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

  1. 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.
  2. 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)
  3. Reselect every value in fields tied to a dropdown list in the Records eligibility rule and Filtering rule if there is one (see recording).
  4. 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).
  5. Find out with a report which employees have a Termination Date before the effective date of their first Job Info record (see recording)
  6. 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

  1. Check that each Bonus Plans has an eligibility rule tied to it (whether EC Business Rule or Legacy Business Rule).
  2. 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.

 

 

Conclusion

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,

Xavier

Assigned Tags

      6 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo chetan wahane
      chetan wahane

      Thanks Xavier for the tips. The job failure message "There is no enough payout point specified on bonus calcuation for goal measure:", from where can we find Goal measure ID, can you kindly provide some information. I have searched the reports, but could not find this information. This error is cryptic, especially when we have lots of business goal and when flexible payout curves are being used.

      Author's profile photo Xavier Le Garrec
      Xavier Le Garrec
      Blog Post Author

      Hi chetan wahane

      It means there is at least one business goal in the system which was loaded through import and for which all mandatory payout points were not specified. Please run an export of all business goals, edit the one that needs to be edited and try again. It's #2 above in Troubleshooting category.

      All the best

      Xavier

      Author's profile photo chetan wahane
      chetan wahane

      Thanks Xavier. The issue when we use flexible payout curves, the payout points are given in flexible payout file and not in the goal file. So when such issue comes it becomes difficult to find the exact goal for which the data is missing. At times, even if you load with correct flexible payout file, goal file does not reflect those changes. Hence wanted to check if there is any way to find out incorrect goal using the goal measure ID which comes in the provisioning error log.

       

      Thanks!

       

      Regards,

      Chetan

      Author's profile photo Xavier Le Garrec
      Xavier Le Garrec
      Blog Post Author

      chetan wahane

      There is no standard way where the system would tell you that, however if you export both file and do a VLOOKUP you should find out pretty quickly.

      And if that doesn't work then you wiill need to restart by loading the business goal file first, then once that is loaded recreate the flexible payout curve file based on the exact list of business goal and making sure all payout points for all goals are entered (no blanks).

      Author's profile photo chetan wahane
      chetan wahane

      Thanks Xavier for your response. I did the same, but it takes time [and laborious :(] so curious for any easy way.

       

      Regards,

      Chetan

      Author's profile photo Xavier Le Garrec
      Xavier Le Garrec
      Blog Post Author

      chetan wahane VLOOKUP checks shouldn't take more than five minutes.