我在VS 2013中使用C#。
我使用此代码:
var request = new ItemSearchBasic
{
type = new SearchEnumMultiSelectField
{
searchValue = new string[]
{
"_inventoryItem"
},
@operator = SearchEnumMultiSelectFieldOperator.anyOf,
operatorSpecified = true
}
};
我不只是库存商品,也包括其他类型的商品。
我的肥皂请求如下:
<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header>
<passport xmlns="urn:messages_2014_2.platform.webservices.netsuite.com">
<email xmlns="urn:core_2014_2.platform.webservices.netsuite.com">xxxxxxxxx</email>
<password xmlns="urn:core_2014_2.platform.webservices.netsuite.com">********************</password>
<account xmlns="urn:core_2014_2.platform.webservices.netsuite.com">xxxxxxxxx</account>
<role internalId="3" xmlns="urn:core_2014_2.platform.webservices.netsuite.com"/>
</passport>
<searchPreferences xmlns="urn:messages_2014_2.platform.webservices.netsuite.com">
<bodyFieldsOnly>false</bodyFieldsOnly>
<pageSize>5</pageSize>
</searchPreferences>
</soap:Header>
<soap:Body>
<search xmlns="urn:messages_2014_2.platform.webservices.netsuite.com">
<searchRecord xsi:type="q1:ItemSearchBasic" xmlns:q1="urn:common_2014_2.platform.webservices.netsuite.com">
<q1:type operator="anyOf">
<searchValue xmlns="urn:core_2014_2.platform.webservices.netsuite.com">_inventoryItem</searchValue>
</q1:type>
</searchRecord>
</search>
</soap:Body>
</soap:Envelope>
NetSuite帮助没有提及如何按项目类型进行过滤,我从各种非NetSuite网页猜测了这种方法。
如果我删除了类型的过滤器,那么我的搜索将返回inventoryItem,serializedInventoryItem,lotNumberedInventoryItem和nonInventoryPurchaseItem。
如果我使用_inventoryItem过滤器,那么我得到inventoryItem,serializedInventoryItem和lotNumberedInventoryItem。因此,NetSuite可能认为serializedInventoryItem和lotNumberedInventoryItem都是inventoryItem。
答案 0 :(得分:2)
如果您需要更详细地区分(库存)项目,可以在搜索请求中使用'isSerialItem','isLotItem'和'subType'(用于购买/转售/销售)搜索过滤器。