我是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。谢谢!
答案 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上解决问题。
感谢大家的帮助和建议。