5

我能够很好地提取销售订单,并且我认为修改已经存在的行项目看起来很有意义,但我将如何添加额外的行项目?

OSR 对我来说似乎没有意义。 https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html

在我请求我的销售订单后,我会为订单项取回这个:

<SalesOrderLineRet>
<TxnLineID>15-1379092567</TxnLineID>
<ItemRef>
<ListID>80000002-1379090362</ListID>
<FullName>4684</FullName>
</ItemRef>
<Desc>tester</Desc>
<Quantity>3</Quantity>
<Rate>600.00</Rate>
<Amount>1800.00</Amount>
<SalesTaxCodeRef>
<ListID>80000002-1378850266</ListID>
<FullName>Non</FullName>
</SalesTaxCodeRef>
<Invoiced>0</Invoiced>
<IsManuallyClosed>false</IsManuallyClosed>
</SalesOrderLineRet>
<SalesOrderLineRet>
<TxnLineID>16-1379092567</TxnLineID>
<ItemRef>
<ListID>80000001-1378935144</ListID>
<FullName>Test Item</FullName>
</ItemRef>
<Desc>Shipment</Desc>
<Quantity>5</Quantity>
<Rate>5.00</Rate>
<Amount>25.00</Amount>
<SalesTaxCodeRef>
<ListID>80000002-1378850266</ListID>
<FullName>Non</FullName>
</SalesTaxCodeRef>
<Invoiced>0</Invoiced>
<IsManuallyClosed>false</IsManuallyClosed>
</SalesOrderLineRet>

现在这是有道理的,所以我查看了 SalesOrderMod 的 qbxml 和我看到的行项目部分:

<SalesOrderLineMod> <!-- optional -->
<TxnLineID >IDTYPE</TxnLineID> <!-- required -->
<ItemRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</ItemRef>
<Desc >STRTYPE</Desc> <!-- optional -->
<Quantity >QUANTYPE</Quantity> <!-- optional -->
<UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
<OverrideUOMSetRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</OverrideUOMSetRef>
<!-- BEGIN OR -->
<Rate >PRICETYPE</Rate> <!-- optional -->
<!-- OR -->
<RatePercent >PERCENTTYPE</RatePercent> <!-- optional -->
<!-- OR -->
<PriceLevelRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</PriceLevelRef>
<!-- END OR -->
<ClassRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</ClassRef>
<Amount >AMTTYPE</Amount> <!-- optional -->
<InventorySiteRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</InventorySiteRef>
<InventorySiteLocationRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</InventorySiteLocationRef>
<!-- BEGIN OR -->
<SerialNumber >STRTYPE</SerialNumber> <!-- optional -->
<!-- OR -->
<LotNumber >STRTYPE</LotNumber> <!-- optional -->
<!-- END OR -->
<SalesTaxCodeRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</SalesTaxCodeRef>
<IsManuallyClosed >BOOLTYPE</IsManuallyClosed> <!-- optional -->
<Other1 >STRTYPE</Other1> <!-- optional -->
<Other2 >STRTYPE</Other2> <!-- optional -->
</SalesOrderLineMod>

所以看起来我可以修改行,但不清楚我是否可以添加新行。我错过了什么吗?行项目需要 IDTYPE,而新项目不存在 IDTYPE 的事实让我认为这不受支持。

4

1 回答 1

6

来自 OSR - TxnLineID

TxnLineID 交易行的标识号。(从 SDK 的 v2.0 开始支持 TxnLineID。对于 qbXML v1.0 和 v1.1,TxnLineID 始终返回为零。)

如果需要在事务 Mod 请求中添加新的事务行,可以通过将 TxnLineID 设置为 -1 来实现。

所以输入 -1 添加一行。

<SalesOrderLineMod>
  <TxnLineID>-1</TxnLineID>
  ... the rest of your new line item details here ...
</SalesOrderLineMod>
于 2013-09-17T17:38:01.410 回答