Как получить все записи из модуля - SugarCRM версия 7+ - PullRequest
0 голосов
/ 13 июня 2018

Согласно документации , для запроса записи вы должны использовать эту конечную точку /<module>/:recordId, но что, если я хочу получить все записи из данного модуля?Я не могу найти какую-либо документацию для этого.

Я пытался /<module>/filter установить параметры json следующим образом:

{
    "max-num": "-1",
    "offset": "0",
    "order-by": "date-entered",
    "favorites": false,
    "my-items": false
}

Но возвращает только 20 записей?

ИзКонечно, я пытался настроить "max-num" с большим количеством цифр, но все равно возвращает 20 записей.

Мне нужна помощь

1 Ответ

0 голосов
/ 13 июня 2018

Имя опции: 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 |   |                  /
|______________________________|  /                  /
...