我有一个可用的 QBXML 界面,但我似乎无法添加几个 数据项上传至发票(至 QB)。我正在尝试添加 发票日期和邮政信箱数量。
QB 返回的错误是:
QuickBooks found an error when parsing the provided XML text stream.
为了确保我正在使用 正确的 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 个小时。我完全失去了更多的想法。任何帮助将不胜感激。
布莱克·麦克布莱德
最佳答案
您提交的标签的顺序很重要。
这意味着如果 QuickBooks OSR 告诉您标签的正确顺序是:
- 发送日期
- 引用编号
- 采购订单编号
- 备忘录
然后您必须按该顺序发送标签。任何其他命令都不起作用。
您的示例具有以下顺序的标签:(TxnDate 之前的备忘录)
- 引用编号
- 备忘录
- 发送日期
此订单:(PONumber 之前的备注)
- 引用编号
- 备忘录
- 采购订单编号
这两者都不正确。
如果您重新排序标签,它就会起作用。
相关QuickBooks development FAQ entry在这里。另外,请确保检查 QuickBooks SDK 中包含的 XML 验证器工具(它会告诉您标签是否乱序)。
QuickBooks OSR将向您显示正确的标签顺序。
关于intuit-partner-platform - 无法将发票日期或发票上的 PO 编号发送给 QB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17263741/