Symptom
Integration Center Import Job fails to complete import for 1000+ batch upsert from a direct query on a Successfactors to Successfactors Integration Job Type.
Error :
UPSERT failed for the row with key:
Reason: com.sap.db.jdbc.exceptions.BatchUpdateExceptionSapDB: 301: unique constraint violated(input position 3). The row will not be processed for subsequent entities]
Or :
AccrualCalculationBase: UPSERT failed for the row with key:
Reason: com.sap.db.jdbc.exceptions.BatchUpdateExceptionSapDB: [301]: unique constraint violated(input position 3). The row will not be processed for subsequent entities
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 HCM Suite
Integration Center
Reproducing the Issue
You have created an Integration Type with Source Type : Succesfactors and Desination Type : Successfactors via Odata V2
Cause
For upsert multiple there is a size limit of 1000 records per call. This is standard behavior as maximum pagination size is at 1000.
Resolution
Please make sure you change your configuration in Integration center in a way that 1000 batch record limit is not exceeded.
Additional Note :
2735876 - Successfactors Odata API Best Practices [Query Modified Records, Pagination etc.,]
- You could restrict your advanced filters to a shorter period
- Schedule the job more often as to not accumulate loads of record on a single run
See Also
Keywords
UPSERT failed for the row with key, Integration Center, Reason: com.sap.db.jdbc.exceptions.BatchUpdateExceptionSapDB: 301: unique constraint violated(input position 3), AccrualCalculationBase, timeoff account, page size limit, batch size , KBA , LOD-SF-INT-EC , Employee Central SFAPI & OData Entities , LOD-SF-INT , Integrations , LOD-SF-INT-ODATA , OData API Framework , LOD-SF-INT-INC , Integration Center , Problem