Symptom
We are using the qualification integration flow on Cloud Platform Integration. There is an API limitation which means that it is not possible to transfer more than 1000 records into our HCM system.
Environment
SAP SuccessFactors Learning
Cause
The cause of the issue is related to something called "pagination" or lack of its usage on the client side.
It is not possible to change the 1000 records limitation per page. The reason is to protect our (SAP) servers against performance degradation and ultimately make our APIs perform better for our customers. Furthermore, we usually recommend to use no more than 500 records per page/per call.
Resolution
You need to make use of OData functions "$count", "$top" and "$skip". That is, you include $count function within the API parameters passed which will give you back how many records exist for the request. Then, you need to include $top function in the next call to break the records up into manageable chunks. The third call would include pagination function "$skip" which would allow you to skip the first amount of records (as you have already been returned these records in the previous call) and start at record e.g 501 and return the remaining records.
More information on how to use "$count", "$top" and "$skip" pagination functions can be found in this very useful blog:
https://blogs.sap.com/2013/03/20/using-odatas-top-skip-and-count/
More information on using pagination for Learning Odata APIs can be found in the SAP Help portal:
Keywords
ODATA API, pagination, SF API limitation, API, ODATA , KBA , LOD-SF-LMS-ODA , Web Services OData , LOD-SF-LMS , Learning Management System , Problem