Netsuite - 获取所有项目优化的列表

时间:2012-10-18 00:45:36

标签: php list search netsuite

我刚刚开始为客户端使用Netsuite,我需要获取所有项目的列表。我搜索了一下但找不到任何东西,这很紧急。在那一刻我可以搜索,但它会返回整个recordList,然后我必须循环并从每个中获取salesDescription对象以放入数组。

来自PHP这看起来令人难以置信的长篇大论,毫无疑问是错误的,有没有人有任何更好的搜索方式的例子,因为它需要大约10秒的时间来运行搜索?

让那10分钟!我知道它会变慢,所以我正在做一个cron来将列表缓存到一个json对象,所以它不是很重要,但必须有更好的方法吗?

3 个答案:

答案 0 :(得分:1)

从另一个角度解决问题,在提取信息时使用NetSuite的只读ODBC驱动程序要高效得多。

唯一的缺点是,这种方法需要激活NetSuite Analytics模块,并且您的客户每月收取约300美元的费用。

有关SuiteAnalytics模块的信息:http://www.netsuite.com/portal/products/suiteanalytics.shtml

ODBC设置步骤(来自第三方网站): http://blog.prolecto.com/2009/03/27/netsuite-delivers-on-odbc/

答案 1 :(得分:0)

如果您使用的是PHP_Toolkit,则Netsuite API允许您运行搜索。您应该能够搜索所需的条件,并且只能接收匹配的记录。您还可以将搜索首选项设置为仅返回一定数量的结果(即仅返回前100个结果)。

我不确定你想要优化什么,但这里有一些选择:

  1. 如果您想要所有记录,请不要进行搜索,请执行所有请求
  2. 如果您只想要某些记录,请进行搜索以避免不必要的结果
  3. 通过设置搜索首选项来限制返回的记录数,以便您可以批量处理它们。
  4. 如果您要查找的内容只是在没有剩余记录的情况下获取“销售说明”字段,我认为无法通过API完成。但是,您可以尝试执行已保存的搜索,然后使用API​​来保存搜索结果。
  5. 通常我发现使用PHP_Toolit进行Netsuite搜索需要20秒或更短时间。但是,如果您将代码作为多个用户运行,则conflicting wsdls会出现问题。

    如果您有兴趣,我有几个examples使用PHP_Toolkit在我的博客上进行搜索:

答案 2 :(得分:0)

使用搜索条件和结果列在NetSuite中创建已保存的搜索。您可以添加排序和其他搜索功能。

使用ItemSearchAdvanced对象来调用已保存的搜索并处理您的记录。

应该很快。

在搜索首选项中,您可以在一次调用中定义页面大小(返回的记录数),然后使用SearchMoreWithSearchId函数翻译结果。