0

我是 SuiteTalk API 的新手,但据我所知,这个查询应该有效(使用 ruby​​ 的 netsuite gem)

memorized_invoices = NetSuite::Records::Transaction.search({ criteria: { basic: [{ field: 'type', operator: 'anyOf', type: 'SearchEnumMultiSelectField', value: ["_invoice"]}, {field: 'memorized', value: true}]}})

但我收到的只是 SearchBooleanField 上缺少的运算符:

D, [2013-10-15T16:23:10.607161 #5131] DEBUG -- : HTTPI POST request to webservices.netsuite.com (curb)
Savon::SOAPFault: (soapenv:Server.userException) org.xml.sax.SAXException: operator not found on {urn:core_2011_2.platform.webservices.netsuite.com}SearchBooleanField

关于为什么它在 SearchBooleanField 上缺少运算符的任何建议?从您在主要降价页面上的示例(搜索:# no operator for booleans),布尔字段不需要运算符。

我做了一个基本的谷歌搜索,除了几个 PHP 示例显示它们使用运算符“is”之外,并没有找到太多,这也不起作用。

有任何想法吗?

我还在GitHub 上将这个问题作为问题打开。谢谢!

4

3 回答 3

1

您缺少operator该字段的过滤器中的属性memorized

{field: 'memorized', operator: 'is', value: true}
于 2013-10-15T18:17:36.473 回答
0

事实证明,这是在 netsuite 库的 gem 实现中发现的一个错误。如果其他人遇到此问题,请查看我们如何解决存储库上的问题

感谢大家的帮助和建议。

于 2013-10-22T03:35:01.370 回答
0

刚刚看了一下模式浏览器。

你是对的 - 似乎不需要操作员。

<complexType name="SearchBooleanField">
    <sequence>
        <element name="searchValue" type="xsd:boolean" minOccurs="0"/>
    </sequence>
</complexType>

为什么不在 UI 中创建一个保存的搜索来代表您要处理的记录?只需执行搜索并遍历结果。

我不了解 Ruby Gem,但通过 Web 服务执行保存的搜索相当简单。

// create search object
TransactionSearchAdvanced tsa = new TransactionSearchAdvanced();

//set saved search id
tsa.savedSearchId="100";

// perform the search
NetSuiteService nss = new NetSuiteService(); 
SearchResult result = nss.search(tsa);
于 2013-10-15T22:14:48.200 回答