NetSuite Web服务API - 如何“部分”履行销售订单2

时间:2014-02-17 14:06:26

标签: c# netsuite

我正试图在netsuite(Web服务API)中部分完成订单。这是我在阅读NetSuiteWebServicesRecordsGuide_2_5_0.pdf后想出的最简单的代码。无论我做什么,订单总是完全履行。这是我提出的最简单的代码,

尝试在订单中完成三个中的第一项:

            var ifi = new ItemFulfillmentItem()
            {
                orderLine = 1,  //  For the fist item in the list
                orderLineSpecified = true,
                quantity = 1.0,
                quantitySpecified = true
            };
            var itemFulfillment = new ItemFulfillment() { 
                createdFrom = new RecordRef() { internalId = MySalesOrderInternalId.internalId, type = RecordType.salesOrder, typeSpecified = true },
                itemList = new ItemFulfillmentItemList(){ item = new ItemFulfillmentItem[] { ifi } , replaceAll = false}
            };
            var result = _service.add(itemFulfillment);

2 个答案:

答案 0 :(得分:1)

所有行都必须存在,当您只包含一些NetSuite时,其他NetSuite会将其他行包含在履行中以满足其全部数量。包含您不想要的行数量为0且itemIsFulfilled为false。

答案 1 :(得分:0)

按照说明数量必须为 0 并且 itemIsFulfilled 必须设置为 false 的答案,它使用 SOAP 对我有用,并且能够容纳部分履行的项目行。下面是对我有用的 XML。此外,如果您只配送特定数量的商品,itemIsFulfilled 仍将设置为 false,但数量必须是您将配送的数量。

<add xsi:type='platformMsgs:AddRequest'>
            <record xsi:type='tranSales:ItemFulfillment'>
                <createdFrom xsi:type='platformCore:RecordRef' internalId='22603' type='salesOrder'/>
                <itemList replaceAll='false' xsi:type='tranSales:ItemFulfillmentItemList'>
                    <item xsi:type='tranSales:ItemFulfillmentItem'>
                        <quantity xsi:type='xsd:double'>1</quantity>
                        <item xsi:type='platformCore:RecordRef' internalId='251'/>
                        <orderLine xsi:type='xsd:long'>1</orderLine>
                        <itemIsFulfilled xsi:type='xsd:boolean'>true</itemIsFulfilled>
                    </item>
                    <item xsi:type='tranSales:ItemFulfillmentItem'>
                        <quantity xsi:type='xsd:double'>0</quantity>
                        <item xsi:type='platformCore:RecordRef' internalId='47'/>
                        <orderLine xsi:type='xsd:long'>2</orderLine>
                        <itemIsFulfilled xsi:type='xsd:boolean'>false</itemIsFulfilled>
                    </item>
                </itemList>
            </record>
        </add>