无法将发票上的发票日期或采购订单编号发送给QB

时间:2013-06-23 18:09:29

标签: intuit-partner-platform qbxml

我有一个可用的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个小时。我完全失去了更多的想法。任何帮助将不胜感激。

Blake McBride

1 个答案:

答案 0 :(得分:2)

您提交的代码的顺序非常重要

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

  • TxnDate
  • RefNumber
  • 采购单号码
  • 备注

然后你必须按顺序发送标签。任何其他订单都不起作用。

您的示例按此顺序包含标记:( TxnDate之前的备忘录)

  • RefNumber
  • 备注
  • TxnDate

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

  • RefNumber
  • 备注
  • 采购单号码

两者都不正确。

如果您重新订购代码,它就会有效。

此处相关QuickBooks development FAQ entry。此外,请确保查看QuickBooks SDK附带的XML Validator工具(它会告诉您标签是否出现故障)。

QuickBooks OSR会显示正确的代码顺序。