Имя опции: max_num
(содержит символ подчеркивания), не max-num
.
Однако на стороне сервера существует другое ограничение, которое отменяет ваш max_num
если его значение слишком велико.Максимальный лимит на стороне сервера по умолчанию равен 1000, но его можно увеличить в конфигурации, установив для $sugar_config['max_record_fetch_size']
нужное число.
Если вы хотите убедиться, что вы получаете все записи, это, как правило, хорошая идея.проверить next_offset
в ответе.Пока это не -1
, есть больше записей, чем было возвращено.В таком случае вам следует отправить еще один запрос со значением next_offset
, равным offset
в запросе, чтобы получить следующую «страницу» записей.
Примечания
- Рекомендую указывать массив
fields
с именами полей, которые вам нужны в ваших запросах.В противном случае вы можете потерять много времени / полосы пропускания / памяти при извлечении большого количества записей. - Настройка
$sugar_config['max_record_fetch_size']
также повлияет, например, на количество записей, которые вы можете выбрать с помощью «выбрать все» в представлениях списка..
Пример подкачки
В следующем примере мы собираемся извлечь все записи с сервера, в пакетах / страницах по 1000 на запрос.Для этого примера предположим, что на сервере всего 2341 записей.
Мы запрашиваем 1000 записей, начиная со смещения 0
, что является первой доступной записью:
Request #1
{
offset: 0,
max_num: 1000
}
Примечание: если смещение не указано, то предполагается значение 0.
Ответ # 1 с сервера
{
next_offset: 1000,
records: [array of 1000 records]
}
Мы получаем первые 1000 записей (смещения от 0 до 999) в Ответ # 1 , смещение для первой записи, которую мы делаем не , имеет 1000
, как указано вnext_offset
Поэтому мы снова запрашиваем 1000 записей, начиная с записи со смещением 1000:
Запрос № 2
{
offset: 1000,
max_num: 1000
}
Ответ № 2 с сервера
{
next_offset: 2000,
records: [array of 1000 records]
}
Мы получаем следующие 1000 записей (смещения от 1000 до 1999) в Ответ № 2 , смещение для первой записи, которую мы делаем не имеет значение 2000
, как указано в next_offset
Поэтому мы снова запрашиваем 1000 записей, начиная с записи со смещением 2000:
Запрос № 3
{
offset: 2000,
max_num: 1000
}
Ответ № 3 с сервера
{
next_offset: -1,
records: [array of 341 records]
}
В Ответ № 3 мы получаем 341 запись (смещение от 2000 до 2340) и next_offset
с -1
, указывая, что больше нет записей.Это означает, что теперь мы получили все 1000 + 1000 + 341 = 2341 доступных записей.
Обзор результатов:
______________________________
| | \ \
| | | \
| "Page 1" | |__ 1000 records |
| records at offset 0..999 | | |
| | | |
|______________________________| / |
| | \ |
| | | |__ all 2341 records
| "Page 2" | |__ 1000 records |
| records at offset 1000..1999 | | |
| | | |
|______________________________| / |
| | \ |
| "Page 3" | |__ 341 records |
| records at offset 2000..2340 | | /
|______________________________| / /