Пустая страница в результате операции searchMoreWithId в NetSuite SuiteTalk API - PullRequest
1 голос
/ 14 мая 2019

Я столкнулся с проблемой при интеграции с NetSuite SuiteTalk API.Они предоставляют SOAP API для управления записями / объектами ERP.Мы импортируем некоторые записи (товарно-материальные запасы) с search вызовом и последующими searchMoreWithId вызовами.

Мы предоставляем условия для search вызова и получаем search_id в ответ.Результат поиска может быть большим, поэтому мы выбираем каждую страницу результата с отдельным вызовом searchMoreWithId, указав searchId и pageIndex.Документация по NetSuite SuiteTalk API - https://docs.oracle.com/cloud/latest/netsuitecs_gs/NSTWP/NSTWP.pdf.

Проблема заключается в некоторых вызовах searchMoreWithId return empty списка записей.

Пример такого ответа с пустой страницей:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <soapenv:Header>
        <platformMsgs:documentInfo xmlns:platformMsgs="urn:messages_2016_2.platform.webservices.netsuite.com">
          <platformMsgs:nsId>WEBSERVICES...</platformMsgs:nsId>
        </platformMsgs:documentInfo>
      </soapenv:Header>
      <soapenv:Body>
        <searchMoreWithIdResponse xmlns="urn:messages_2016_2.platform.webservices.netsuite.com">
          <platformCore:searchResult xmlns:platformCore="urn:core_2016_2.platform.webservices.netsuite.com">
            <platformCore:status isSuccess="true"/>
            <platformCore:totalRecords>98852</platformCore:totalRecords>
            <platformCore:pageSize>10</platformCore:pageSize>
            <platformCore:totalPages>9886</platformCore:totalPages>
            <platformCore:pageIndex>66</platformCore:pageIndex>
            <platformCore:searchId>WEBSERVICES_...</platformCore:searchId>
            <platformCore:recordList/>
          </platformCore:searchResult>
        </searchMoreWithIdResponse>
      </soapenv:Body>
    </soapenv:Envelope>

Обратите внимание: platformCore:recordList XML-тег в ответном документе пуст.

Я заметил постоянный шаблон - перед пустыми страницами не полный.Например, мы устанавливаем размер страницы = 10 и получаем в ответ следующее количество записей:

page 1496 - 10
page 1497 - 5
page 1498 - 0
page 1499 - 0
page 1500 - 0
page 1501 - 10

Я обнаружил только следующее упоминание об уменьшении размера страницы в официальной документации (в том же документе PDF, представленном выше):

Рассмотрите следующие возможные проблемы при выполнении поиска в веб-службах или SuiteScript, который возвращает большой набор данных.

  • Если запись, которая изначально соответствуеткритерии поиска обновлены и больше не соответствуют критериям, они пропускаются поиском.В этом случае некоторые записи, которые изначально были включены в результаты поиска, могут не возвращаться, и общее количество возвращенных записей может быть меньше, чем исходное общее количество результатов.

  • Еслисоздаются новые записи, соответствующие критериям поиска, они также возвращаются.Общее количество возвращенных записей может быть больше
    после того, как вы пролистаете результаты, чем исходное общее количество
    результатов, и могут быть возвращены дублированные результаты.

  • Результаты могутотсутствовать.Например, если запись с первой страницы результатов обновлена ​​и она больше не соответствует критериям, другая запись
    теперь помещается на первой странице.Однако, поскольку более ранние страницы
    пропускаются при просмотре последующих страниц результатов поиска, эта запись
    не возвращается.

  • В веб-службах большее или меньшее числоЗаписи могут быть возвращены после того, как вы просматриваете результаты поиска, чем количество записей, которые изначально соответствуют критериям поиска.

  • Страница вторая, и последующие страницы набора результатов могут содержать меньше записей, чемуказанный размер страницы.

Но не уверен, имеет ли это отношение к нашему делу.


Итак, вопросы: это нормальная ситуация?Разве это не требует дополнительной обработки или повторной попытки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...