Symptom
When trying to complete a Rehire, the user clicks on Save (at the end of the Rehire wizard) or the final Approver of the Rehire Workflow he faces an Application Error. The error can be either of the following:
- JDBC batch update error:
- An Application Error has Occurred:
Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental
Environment
- SAP SuccessFactors HXM Suite
- SAP SuccessFactors Employee Central
Reproducing the Issue
The issue does not occur for every Rehire, so reproducing the issue every time is not always possible. To try and reproduce, Rehire an employee via any one of the 4 correct Rehire methods:
- Admin Center > Add New Employee wizard > trigger the "Use This Match" feature (by entering First/Last Name, Date of Birth and National ID of a Terminated employee) to Rehire the employee
- Add New Employee > Use this match > Rehire with new employment (could be any regular employee Rehire, or also a conversion, i.e. rehiring from Global Assignment or Contingent Worker)
- Admin Center > Rehire Inactive Employee
- Admin Center > Manage Pending Hires > Hire an employee and then trigger the "Use This Match" feature (by entering First/Last Name, Date of Birth and National ID of a Terminated employee) to Rehire the employee
Where will the error occur?
- If no Rehire workflow is configured, the error will occur when clicking "Save" at the end of the Rehire process
- If a Rehire Workflow is configured, the error will occur when the final aprover tries to approve the workflow request
Cause
The error is caused by a data issue, with the employees existing data in the system (not the data entered via the Rehire process). The root cause that creates this scenario has not yet been identified (as it is not reproducible). The Development investigation is still on-going.
Resolution
Which data can cause these errors?
It could be one of the following:
- Global Information (child data of Personal Information element)
- Email Information
- Phone Information
- Dependents Information
- National Id Information
Identifying what data is causing the error
First step is to identify what data is causing the error. Currently you will need to engage with SAP SuccessFactors Product Support (Employee Central) to determine the exact root cause. To do so you will need to capture the following information, and provide it in the Support case you create, along with the ID of this Knowledge Article -:
- User ID (of the employee being Rehired)
- Data Center
- Instance ID
- Error id (If you get the "An Aplication Error has Occurred" message - copy the entire contents of the pop-up's text area - it should look something similar to this -: errorId=a119a9b-0f1e-46fd-8f35-55dce38970, timestamp=2016-09-15T09:09:09.329+0200, server=191PC123BCF274, versionInfo=Release%3A%20b1608.1074547%0A%20%20%20%20%20%20Server%3A%2019PC12BCF27%0A%20%20%20%20%20%20Timestamp%3A%202016-09-15T09%3A08%3A40.325%2B0200)
- Immediate Time Stamp when the error occurs (reproduce the error message, then click OK on the error message and scroll to the bottom of the page, and click "Show version information" and take a screenshot or copy/paste the text into the case)
Note:
For CPS colleagues, please review the following internal KBA for futher detail on finding the cause of the issue via the error logs:
2472634 - INTERNAL - How to use SPLUNK to find Cause of JDBC Batch Error for Rehire
What to do once the data causing the issue has been identified
The issue is always with the existing data, not that which was entered during the Rehire process. Therefore to work-around this problem you would need to -:
- Navigate to My Employee Files
- Search for the employee you are Rehiring (using the "Include Inactive Users in Search" feature)
- Navigate to their Personal Information page
- Delete the existng data in the portlet identified as causing the issue
We strongly recommend that you take a backup of the data before you delete it. With Email Info and Phone Info, as there is no history records for these elements, a screenshot should be enough. But for Global Information, you may want to run a Person and Employment Export Ad Hoc report, to backup all of the Historic records for Global Info, before deleting them all. For Dependents Info, please refer to Knowledge Article 2379934 for further guidance.
Once the problem data has been removed, you can complete the Rehire process. Note - the data captured in the Rehire will not be effected. If you are not using workflows, then you will definitely need to backup previous data, as you need to complete the process again.
What is a good idea here, is to use a workflow for all Rehires - so the process does not need to be completed again and again if this issue occurs, because when using Workflow, the Rehire data is stored on a temporary table until final approver approves the workflow.
Product Support Note: Please refer to Internal Memo for Application Log examples
Keywords
JDBC batch update, An Application Error has Occurred, Rehire error, Unable to Rehire, Rehire Workflow, JDBC, batch, Rehire, JDBC, Batch, Unable to approve rehire workflow, UC_PER_PERSON_KEY, updatePersonRelationshipsInfo, 8e531727cde1d0233f6660c97e8e0fa798f3c19b, ECT-85773, ECT-51409, ECT-44062, ECT-33809, ECT-33715, ECT-87110, HibernateException thrown could not insert, getAllEffectiveEmpEmailInfoForUserByType, unique constraint violated, EMP_EMAIL_INFO, UC_EMP_EMAIL_INFO_KEY, com.successfactors.hris.bean.eo.EmpEmailInfoEO, HibernateException thrown could not insert: [com.successfactors.hris.bean.eo.EmpEmailInfoEO], EmpPhoneInfoEO, a different object with the same identifier was already associated with the session, , KBA , LOD-SF-EC-HIR , Hire & Rehire Wizards , LOD-SF-EC-WFL , Workflows - Configuration, Tools, Objects & Rules , LOD-SF-EC-CON , Concurrent Employment , LOD-SF-EC-GA , Global Assignment , LOD-SF-EC-CWF , Contingent Workforce , Problem