我刚刚开始为客户端使用Netsuite,我需要获取所有项目的列表。我搜索了一下但找不到任何东西,这很紧急。在那一刻我可以搜索,但它会返回整个recordList,然后我必须循环并从每个中获取salesDescription对象以放入数组。
来自PHP这看起来令人难以置信的长篇大论,毫无疑问是错误的,有没有人有任何更好的搜索方式的例子,因为它需要大约10秒的时间来运行搜索?
让那10分钟!我知道它会变慢,所以我正在做一个cron来将列表缓存到一个json对象,所以它不是很重要,但必须有更好的方法吗?
答案 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个结果)。
我不确定你想要优化什么,但这里有一些选择:
通常我发现使用PHP_Toolit进行Netsuite搜索需要20秒或更短时间。但是,如果您将代码作为多个用户运行,则conflicting wsdls会出现问题。
如果您有兴趣,我有几个examples使用PHP_Toolkit在我的博客上进行搜索:
答案 2 :(得分:0)
使用搜索条件和结果列在NetSuite中创建已保存的搜索。您可以添加排序和其他搜索功能。
使用ItemSearchAdvanced对象来调用已保存的搜索并处理您的记录。
应该很快。
在搜索首选项中,您可以在一次调用中定义页面大小(返回的记录数),然后使用SearchMoreWithSearchId函数翻译结果。