SearchBooleanField上找不到运算符

时间:2013-10-15 17:14:23

标签: netsuite

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

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示例,表明他们使用运算符'是',这也不起作用。

有什么想法吗?

我也将此问题打开为issue on GitHub。谢谢!

3 个答案:

答案 0 :(得分:1)

您错过了operator字段过滤器中的memorized属性:

{field: 'memorized', operator: 'is', value: true}

答案 1 :(得分:0)

刚看了一下Schema Browser。

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

<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);

答案 2 :(得分:0)

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

感谢大家的帮助和建议。