【问题标题】:Modify invoice in QuickBooks gives exception "QuickBooks found an error when parsing the provided XML text stream."?在 QuickBooks 中修改发票给出异常“QuickBooks 在解析提供的 XML 文本流时发现错误。”?
【发布时间】:2015-02-10 13:58:15
【问题描述】:

我正在使用桌面版 Quickbooks SDK (qbxml) 来修改发票,我收到错误消息“QuickBooks 在解析提供的 XML 文本流时发现错误。”我使用 C# 作为开发语言。我使用“其他”和“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>

这有什么问题?

【问题讨论】:

  • 只是一个疯狂的猜测,但由于 Xml 乍一看很好,解析器可能会阻塞日期字符串格式,因为它需要 &lt;FOB&gt;02/03/2015&lt;/FOB&gt; 而不是 &lt;FOB&gt;2015-02-03&lt;/FOB&gt;
  • 嗨菲尔伯特,它没有用。此外,当我一次修改一个字段时,它工作正常。例如,如果我取消“Other”和“ShipDate”并保留“FOB”,它将成功更新。
  • 诚然,我对 QuickBooks SDK 并不熟悉,所以我不得不把它留给真正的专业人士。

标签: c# xml quickbooks


【解决方案1】:

qbXML 中元素的顺序很重要

如果您参考文档:

或一些常见问题解答:

您会注意到它指定了这个订单(FOB,然后是 ShipDate):

...
<FOB >STRTYPE</FOB> <!-- optional -->
<ShipDate >DATETYPE</ShipDate> <!-- optional -->
...

当您指定此订单时(ShipDate,然后 FOB):

...
<ShipDate>2015-02-03</ShipDate>
<FOB>2015-02-04</FOB>
...

修复 XML 元素的顺序,一切就绪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多