Разбиение на страницы SOQL для запросов API Salesforce

StackOverflow https://stackoverflow.com/questions/1507377

  •  19-09-2019
  •  | 
  •  

Вопрос

Существует ли эффективный способ постраничного просмотра результатов запроса SOQL без возврата всех результатов запроса и последующего отбрасывания большинства из них?

Например, я хотел бы иметь возможность пролистывать полный список контактов, отображая одновременно 10 записей.Мне не нужно сортировать по какому-либо конкретному полю.

Это было полезно?

Решение

В настоящее время наиболее эффективное решение, которое я нашел, которое будет работать с любым запросом SOQL через партнерский API, — это сохранение объектов sObject, возвращаемых из исходного QueryResult, и локатора запроса на случай, если страница запрашивается вне текущих результатов.

Для этого потребовался определенный уровень поддержки разбиения на страницы поверх QueryResult Salesforce.

Т.е.При запросе страницы sObjects могут потребоваться от:

  • Текущий (кэшированный) результат запроса
  • Последующий QueryResult, который можно получить с помощью локатора запроса.
  • Предыдущий результат запроса
  • Некая комбинация всех трёх.

Если страница охватывает два (или более) QueryResult, необходимо создать искусственный QueryResult со всеми необходимыми записями.

Обновление для выпуска весны 2012 г.

Похоже, появится новая функциональность, которая добавит поддержку OFFSET в SOQL.Например.

SELECT Name FROM Merchandise__c WHERE Price__c > 5.0 ORDER BY Name LIMIT 50 OFFSET 100

Видеть Выпуск платформы Force.com весной 2012 г. — в SOQL добавлено OFFSET (пилотная версия)

Обновление для выпуска лета 2012 г.

СМЕЩЕНИЕ теперь GA. (Общая доступность?)

Другие советы

вы можете использовать поле автоматического номера для разбиения на страницы на стороне сервера.это поле можно использовать после предложения «order by», оно может действовать как поле индекса.

Я сделал нумерацию страниц, как вы.но у меня другая проблема: я не могу одновременно выполнять сортировку на стороне сервера.потому что для сортировки и разбивки на страницы необходимо добавить столбец после предложения «order by».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top