You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetSuite searchMoreWithId API在returnSearchColumns=true时分页异常

问题

我使用NetSuite SOAP API获取已保存的搜索结果,当结果超过1000行分页大小时,会调用search和searchMoreWithId API。遇到以下异常情况:

  • 当初始search调用设置<returnSearchColumns>false</returnSearchColumns>时,分页正常,比如某搜索能正确返回3383条数据(分4页)。
  • 但设置<returnSearchColumns>true</returnSearchColumns>时,每次调用searchMoreWithId获取下一页都返回第一页数据,同一搜索最终得到4000条重复的前1000条记录。
  • 该问题已在Postman中复现:传入不同pageIndex仍得到相同的1000条数据;Node环境下的代码片段也存在同样问题。

请问这是API Bug还是我遗漏了相关配置?

分析与解决方案

这不是API Bug,是你在使用searchMoreWithId时遗漏了关键配置:当初始search请求设置<returnSearchColumns>true</returnSearchColumns>时,后续调用searchMoreWithId必须完全复用初始请求中定义的<searchColumns>结构,不能省略或修改。

具体原因

NetSuite的SOAP API在returnSearchColumns=true时,会将搜索列配置与搜索会话ID绑定。如果后续searchMoreWithId请求没有携带与初始请求一致的<searchColumns>,API会默认重新执行初始搜索的第一页,而非继续分页。而returnSearchColumns=false时,API返回的是完整记录,不需要依赖列配置来定位分页位置,所以不会出现这个问题。

修复步骤

  1. 在初始search请求中定义好需要返回的<searchColumns>,并保存该结构。
  2. 每次调用searchMoreWithId时,除了传入searchId和pageIndex,必须将保存的<searchColumns>完整传入请求体中。

Node环境代码示例修正(假设使用soap库)

// 初始search请求,定义searchColumns
const initialSearchRequest = {
  search: {
    type: 'transaction',
    savedSearchId: '123',
    returnSearchColumns: true,
    searchColumns: {
      // 这里是你需要的列,比如:
      internalId: {},
      tranId: {},
      tranDate: {}
    }
  }
};

// 调用初始search,获取searchId
const initialResponse = await client.search(initialSearchRequest);
const searchId = initialResponse.searchResult.searchId;

// 后续调用searchMoreWithId时,必须传入相同的searchColumns
for (let pageIndex = 1; pageIndex <= totalPages; pageIndex++) {
  const moreRequest = {
    searchId: searchId,
    pageIndex: pageIndex,
    searchColumns: initialSearchRequest.search.searchColumns // 关键:复用初始列配置
  };
  const pageResponse = await client.searchMoreWithId(moreRequest);
  // 处理当前页数据
}

验证要点

  • Postman中测试时,确保searchMoreWithId请求的<searchColumns>与初始search请求完全一致,包括列的顺序和类型。
  • 不要在searchMoreWithId中省略<searchColumns>,即使你觉得列配置和初始请求一样。

内容的提问来源于stack exchange,提问作者Jed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 21:42:10