如何使用Salesforce Rest API在SOQL上处理大于2000的偏移量而无需按ID或日期排序 [英] How to handle an offset greater than 2000 on SOQL without sorting by ID or date using the Salesforce Rest API
问题描述
现在,我正在从使用oracle数据库迁移网站以使用Salesforce的工作中.为了查询数据,我们使用了最新版本的salesforce rest API.现在,我在将结果与大于2000的偏移量进行分页时遇到了问题.关于该主题,我已经看到很多问题,但是似乎没有一个适合我的问题.
所以这是限制
- 我需要在20条记录的块(即页面大小)上获取结果.我不能只获得大量结果,然后进行一些手动分页,因为这超出了该项目的范围.
- 我无法执行
WHERE ID>lastIdIntheResults LIMIT 20
因为我需要按名称对结果进行排序,所以按ID进行排序会破坏客户期望的顺序. - 需要使用REST API完成.我认为没有办法在REST API上使用queryMore函数.
那么,您有什么建议吗?
谢谢
REST API与SOAP API的 queryMore
等效,为 done:false
和 nextRecordsUrl:...
在响应中.
然后下一个是
要更改没有限制/偏移的块大小",您可以使用HTTP标头: 解决方案
REST API's equivalent of SOAP API's queryMore
is done: false
and nextRecordsUrl: ...
in the response.
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_query.htm
Here's my data queried via https://workbench.developerforce.com -> Utilities -> Rest Explorer:
And then the next one would be
And to change the "chunk size" without LIMIT/OFFSET you can use a HTTP header: Sforce-Query-Options: batchSize=200
这篇关于如何使用Salesforce Rest API在SOQL上处理大于2000的偏移量而无需按ID或日期排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!