【问题标题】:Can't send invoice date or PO number on invoice to QB无法将发票日期或发票上的采购订单号发送给 QB
【发布时间】:2013-06-23 18:09:28
【问题描述】:

我有一个可用的 QBXML 界面,但我似乎无法添加几个 数据项到发票上传(到 QB)。我正在尝试添加 发票日期和 P.O.编号。

QB 返回的错误是:

QuickBooks 在解析提供的 XML 文本流时发现错误。

为了确保我正在使用 正确的 XML 格式我在相反的方向进行了传输 (来自 QB)以查看它发送的内容。

向 QB 发送发票时,我添加了以下两个 XML 元素(导致问题的):

<TxnDate>2013-04-02</TxnDate>

<PONumber>ABC123</PONumber>

其中一个或两个都会产生错误。如果我省略两者,它会起作用。

例如,以下工作:

<?xml version="1.0" ?><?qbxml version="10.0"?><QBXML><QBXMLMsgsRq onError = "stopOnError"><InvoiceAddRq requestID = "1"><InvoiceAdd><CustomerRef><ListID>800000D1-1371755142</ListID></CustomerRef><RefNumber>0071010001P</RefNumber><Memo></Memo><InvoiceLineAdd><ItemRef><ListID>80000001-1288815007</ListID></ItemRef><Desc>Software License Fee as per 6/19/07 Licensing Agreement</Desc><Quantity>1.00</Quantity><Rate>4000.0000</Rate></InvoiceLineAdd><InvoiceLineAdd><ItemRef><ListID>80000001-1288815007</ListID></ItemRef><Desc>Consulting hours as per 7/16/07 Large Contract for Consulting Services</Desc><Quantity>50.00</Quantity><Rate>100.0000</Rate></InvoiceLineAdd></InvoiceAdd></InvoiceAddRq> </QBXMLMsgsRq></QBXML>

但以下不起作用:

<?xml version="1.0" ?><?qbxml version="10.0"?><QBXML><QBXMLMsgsRq onError = "stopOnError"><InvoiceAddRq requestID = "1"><InvoiceAdd><CustomerRef><ListID>800000D1-1371755142</ListID></CustomerRef><RefNumber>0071010001P</RefNumber><Memo></Memo><TxnDate>2013-04-02</TxnDate><InvoiceLineAdd><ItemRef><ListID>80000001-1288815007</ListID></ItemRef><Desc>Software License Fee as per 6/19/07 Licensing Agreement</Desc><Quantity>1.00</Quantity><Rate>4000.0000</Rate></InvoiceLineAdd><InvoiceLineAdd><ItemRef><ListID>80000001-1288815007</ListID></ItemRef><Desc>Consulting hours as per 7/16/07 Large Contract for Consulting Services</Desc><Quantity>50.00</Quantity><Rate>100.0000</Rate></InvoiceLineAdd></InvoiceAdd></InvoiceAddRq> </QBXMLMsgsRq></QBXML>

以下不起作用:

<?xml version="1.0" ?><?qbxml version="10.0"?><QBXML><QBXMLMsgsRq onError = "stopOnError"><InvoiceAddRq requestID = "1"><InvoiceAdd><CustomerRef><ListID>800000D1-1371755142</ListID></CustomerRef><RefNumber>0071010001P</RefNumber><Memo></Memo><PONumber >ABC123</PONumber><InvoiceLineAdd><ItemRef><ListID>80000001-1288815007</ListID></ItemRef><Desc>Software License Fee as per 6/19/07 Licensing Agreement</Desc><Quantity>1.00</Quantity><Rate>4000.0000</Rate></InvoiceLineAdd><InvoiceLineAdd><ItemRef><ListID>80000001-1288815007</ListID></ItemRef><Desc>Consulting hours as per 7/16/07 Large Contract for Consulting Services</Desc><Quantity>50.00</Quantity><Rate>100.0000</Rate></InvoiceLineAdd></InvoiceAdd></InvoiceAddRq> </QBXMLMsgsRq></QBXML>

我在这上面至少花了 30 个小时。我完全失去了更多的想法。任何帮助将不胜感激。

布莱克·麦克布莱德

【问题讨论】:

    标签: intuit-partner-platform qbxml


    【解决方案1】:

    您提交的标签的顺序很重要

    这意味着如果 QuickBooks OSR 告诉您标签的正确顺序是:

    • 发送日期
    • 参考编号
    • 邮政编码
    • 备忘录

    那么您必须按该顺序发送标签。任何其他命令都不起作用。

    您的示例具有以下顺序的标签:(TxnDate 之前的备忘录)

    • 参考编号
    • 备忘录
    • 发送日期

    还有这个顺序:(PONumber 之前的备忘录)

    • 参考编号
    • 备忘录
    • 邮政编码

    两者都不正确。

    如果您重新排序标签,它会起作用。

    相关QuickBooks development FAQ entry在这里。此外,请务必查看 QuickBooks SDK 中包含的 XML Validator 工具(它会告诉您标签是否有问题)。

    QuickBooks OSR 将显示正确的标签顺序。

    【讨论】:

    • 是的......真的吗?..订单很重要,嗯?浪费了3个小时。无论如何感谢您的帖子 - 但请在您的 wiki/FAQ/任何您有的任何页面上以粗体显示此信息。这太少见了,而且来自 SDKTest.exe 的错误非常不清楚,甚至都不好笑。
    • 由于我们的绝大多数 wiki 都不是关于 qbXML,我不确定这是否合适。你可能会考虑向 Intuit 发送一些东西,但如果它让你很困扰 - 我同意他们应该更好地记录它。 QuickBooks 因返回的错误消息而臭名昭著,如果您不熟悉该平台,这些消息会让人难以理解。
    猜你喜欢
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2021-02-18
    相关资源
    最近更新 更多