1

我正在编写代码以使用 QODBC 驱动程序将自定义应用程序中创建的发票导入 QuickBooks。我的东西几乎可以工作,但我遇到了添加实际发票记录的插入问题。我的整体代码基于http://support.flexquarters.com/esupport/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=10726&nav=0,58,64中列出的模型。

在这种特殊情况下,InvoiceLine 表中的 INSERT 可以正常工作,但 Invoice 中的 INSERT 失败并出现以下错误:

[QODBC] 错误:3140 - 发票行中对 QuickBooks 项目“”的引用无效。

这是我在这种情况下发送的 INSERT 命令:

INSERT INTO Invoice (CustomerRefListID, ARAccountRefFullName, TxnDate, RefNumber, TermsRefFullName, TemplateRefFullName, SalesRepRefListID, ClassRefListID)
  VALUES ('80000855-1326914216', 'Receivables', {d '2012-01-17'}, '12-1005', '30 days', 'Customized Invoice', '30000-1034349330', '8F70000-912629594')

CustomerRefListID、SalesRepListID 和 ClassRefListID 的值都是通过查找相应的表来确定的。我还确认“条款”表中出现了“30 天”。

几天前,生成此命令的代码的早期版本正在使用不同的数据。它使用了 SalesRepRefFullName 和 ClassRefFullName。由于这个案例的失败,我对其进行了修改,认为我可用的字符串可能并不总是与全名完全匹配。

欢迎任何建议。

添马舰

4

2 回答 2

1

解决了。事实证明,引用的项目位于其中一个行项目中,而不是发票本身。我没有注意到其中一个订单项中的 RefID 是空的。

绝对不是有用的错误消息。

于 2012-01-20T21:22:47.207 回答
0

项目在 Quickbooks 中不存在。首先在 Quickbooks 中创建它,然后才能在 invoice 中引用它。

于 2012-01-19T15:30:38.980 回答