cancel
Showing results for 
Search instead for 
Did you mean: 

How to select massive data from Successfactors using OData APIs?

former_member243278
Participant

Hi Everyone,

I am trying to select massive data from Successfactors for some analytics reports. Actually, I am familiar with OData APIs but in SF OData API it is returning 1000 record maximum in response. I am using "__next" skiptoken to select other 1000 record as in pagination.

However, here is the question that How can I select more than 1000 records in one request without using "__next" pagination?

It is critically important for me because the performance of data selection is very slow for more than 10.000 records. If the actual data is 10.000 records, I have to send 10 request to SF backend. It affects performance of my application.

Here is Successfactors developer guide link about pagination;

https://help.sap.com/viewer/d599f15995d348a1b45ba5603e2aba9b/1711/en-US/93ef8631b93b4d58be235b047dae...

Is it really obligatory to select data? Because I need to select more than 1000 record in one request.

What is the best way to select bigger data in SF using OData or in other options?

0 Kudos

Hi Baris,

Did you find a solution to your question? I currently have the same issue! I need to select more than 1000 records in one request.

Thank you! 🙂

former_member34
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi there,

You have a question and need help by the community? Instead of posting into an old question thread, it is more helpful for you, if you create your own question. Here is how to get started:

  1. Learn about asking and answering questions in SAP Community with this tutorial: https://developers.sap.com/tutorials/community-qa.html
  2. Ask your detailed question here: https://answers.sap.com/questions/ask.html
  3. Wait for a response.

That's it. Thank you!

Best regards

Jennifer

Your SAP Community moderator

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member185414
Active Contributor

Try changing the OData model size to 10,000 and see.

former_member243278
Participant
0 Kudos

Hi ankit.maskara3,

How can I change OData model size? Can you please give more details? Is it inside successfactors provisioning or admin panel?

former_member185414
Active Contributor
0 Kudos

Hi Baris,

It has to be changed in SAPUI5 code. I hope you have access to it.

former_member243278
Participant
0 Kudos

Hi Ankit,

It is not related with code. Because I could not restrict the reponse size in code. It should be more than 1000 record. However, in successfactor server-side restrict to 1000 record.

former_member185414
Active Contributor
0 Kudos

Hi Baris,

Going from my SAPUI5 experience whenever we need to fetch more data than the 'Default' model size we over write the size property of model and issue the read call to server/backend. Here also I was thinking something similar could be done. Is it not possible ?

former_member243278
Participant
0 Kudos

Hi Ankit,

It is not possible in frontend request call. It is not related with size that you set. It directly comes from Successfactors backend service.

If you want, you can try to set $top=2500 record to your OData query. You can also see that SF API will return to you top 1000 record and then you have to execute "__next" attribute value to call second part of your data as well as in OData pagination.

I wonder that is there any configuration to set pagination size of SF OData API? or response size?

former_member185414
Active Contributor
0 Kudos

The top and skip works inconjunction with the model size. In SAPUI5, the model size is the maximum size and that many records can be retrieved from backend in single shot. In Successfactor I am not sure if it's handled in same way or not. Maybe fellow members can comment.

former_member243278
Participant
0 Kudos

Apart from successfactors, you are right, but you can check the successfactors developer documentation about pagination in here. However, I still need to select more than 1000 record in one time.

former_member185414
Active Contributor
0 Kudos

In that case try this - pass a value more than 1000 in top and put a breakpoint in the backend API and check where it is ignoring the passed value of top and capping the data output to 1000. Then you may try implementing an enhancment.

former_member243278
Participant
0 Kudos

This question is based on successfactors which is cloud based product. You don't have the backend code and you cannot implement an enhancement.

former_member185414
Active Contributor
0 Kudos

Noted. Thanks