我正试图在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);
答案 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>