NetSuite SuiteTalk API中searchSearchWithWithId操作的结果为空白页

时间:2019-05-14 15:45:21

标签: api soap netsuite suitetalk

我遇到了与NetSuite SuiteTalk API集成的问题。他们提供SOAP API,以便管理ERP的记录/实体。我们通过search调用和随后的searchMoreWithId调用导入一些记录(库存项目)。

我们提供了search致电的条件,并收到search_id作为回应。搜索结果可能很大,因此我们使用分别指定searchMoreWithIdsearchId的{​​{1}}调用来获取结果的每一页。 NetSuite SuiteTalk API文档-  https://docs.oracle.com/cloud/latest/netsuitecs_gs/NSTWP/NSTWP.pdf

问题是pageIndex的某些调用返回记录的列表。

带有空白页面的此类响应示例:

searchMoreWithId

请注意,响应文档中的 <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> XML标签为空。

我注意到一个不变的模式-在空页之前没有完整的页面。例如。我们将页面大小设置为10,并收到以下记录作为响应:

platformCore:recordList

在以下情况下,我发现官方文档(与上面提供的同一PDF文档中)中的页面尺寸不断缩小:

  

在中执行搜索时,请考虑以下可能的问题   Web服务或返回大数据集的SuiteScript。

     
      
  • 如果最初符合搜索条件的记录已更新,但不再符合条件,则搜索将跳过该记录。在这   的情况下,一些最初包含在搜索中的记录   结果可能不会返回,并且返回的总数   记录可能小于原始结果总数。

  •   
  • 如果创建了符合搜索条件的新记录,则还将返回它们。返回的记录总数可能更高
      您翻页后的结果比原始总数少了
      结果,并且可能会返回重复的结果。

  •   
  • 结果可能会丢失。例如,如果第一个结果页中的记录已更新,但不再符合条件,则另一个
      记录现在适合第一页。但是,因为以前的页面是
      在浏览搜索结果的后续页面时跳过此
      记录不返回。

  •   
  • 在Web服务中,分页搜索结果后返回的记录数可能大于或小于记录数。   最初符合搜索条件的记录。

  •   
  • 结果集的第二页和后续页面可能包含少于指定页面大小的记录。

  •   

但不确定是否与我们的案件有关。


那么问题是:这是正常情况吗?不需要其他处理或重试吗?

1 个答案:

答案 0 :(得分:0)

这是可能发生的事情。看看at this discussion了解更多信息。

您引用的关键段落in the documentation是:

  

如果原来符合搜索条件的记录已更新,但不再符合条件,则搜索将跳过该记录。在这种情况下,可能不会返回原始包含在搜索结果中的某些记录,并且返回的记录总数可能会小于原始结果总数。

这是主要情况,页面中的实际记录可能与您期望的不同。例如,假设您运行的搜索基于lastModified进行过滤。如果搜索需要一个小时才能完全运行,则某些记录可能会在您遍历搜索结果的过程中被修改,从而导致它们在到达包含这些记录的页面时已从搜索结果中删除。搜索结果。