c# - 如何使用 SuiteTalk 仅搜索库存商品

标签 c# web-services netsuite

我在 VS 2013 中使用 C#。

我使用此代码:

    var request = new ItemSearchBasic
    {
        type = new SearchEnumMultiSelectField
        {
            searchValue = new string[]
            {
                "_inventoryItem"
            },
            @operator = SearchEnumMultiSelectFieldOperator.anyOf,
            operatorSpecified = true
        }

    };

我不仅得到库存元素,还得到其他类型的元素。

我的 SOAP 请求如下所示:

<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。

最佳答案

如果您需要更详细地区分(库存)商品,您可以在搜索请求中使用“isSerialItem”、“isLotItem”和“subType”(用于购买/转售/销售)搜索过滤器。

关于c# - 如何使用 SuiteTalk 仅搜索库存商品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27628083/

相关文章:

c# - 带有 TextBlock 和复选框的 XAML ToggleButton

c# - 按周分组 EF Core 2.1

带有引用参数的 C# Web 服务

NetSuite Oauth 实现

Netsuite从帐户表获取[货币]的方法

c# - 仅当 ListView 不为空(有项目)时才使 TextBox 可见

c# - 创建控件时出错 - 自定义控件

c# - 获取 ORA-06503 : PL/SQL: Function returned without value? 的原因

ios - 在 Web 服务调用 Swift3 完成时执行 segue

javascript - NetSuite:在 SUITESCRIPT 2.0 中使用 SUITESCRIPT 1.0