我在桌面上使用Quickbooks SDK(qbxml)修改发票,但我收到一个错误"Quickbooks在解析提供的XML文本流时发现错误。"我使用C#作为开发语言。我使用"其他"one_answers"FOB"字段来显示UPS的运输详细信息。
<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="13.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<InvoiceModRq requestID="2">
<InvoiceMod>
<TxnID>18D23-1422298930</TxnID>
<EditSequence>1423512371</EditSequence>
<Other>1ZAV49630440508209</Other>
<ShipDate>2015-02-03</ShipDate>
<FOB>2015-02-04</FOB>
</InvoiceMod>
</InvoiceModRq>
</QBXMLMsgsRq>
</QBXML>
这是怎么回事?
qbXML中元素的顺序很重要。
如果您参考文档:
- https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html
或者一些常见问题:
- http://www.consolibyte.com/docs/index.php/QbXML_FAQ#What_does_.220x80040400_QuickBooks_found_an_error_when_parsing_the_provided_XML_text_stream..22_mean.3F
你会注意到它指定了这个订单(FOB,然后是发货日期):
...
<FOB >STRTYPE</FOB> <!-- optional -->
<ShipDate >DATETYPE</ShipDate> <!-- optional -->
...
当您指定此订单时(发货日期,然后是FOB):
...
<ShipDate>2015-02-03</ShipDate>
<FOB>2015-02-04</FOB>
...
修复XML元素的顺序,您就可以做好准备了。