2012-01-18 80 views
1

我正在使用QODBC驅動程序處理將自定義應用程序中創建的發票導入QuickBooks的代碼。我的工作幾乎可行,但我遇到了INSERT問題,它添加了實際的發票記錄。我的整體代碼基於http://support.flexquarters.com/esupport/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=10726&nav=0,58,64上的模型。插入QuickBooks發票行時出錯

在這個特定的情況下,插入到InvoiceLine表在工作,但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。我修改它是因爲這個案例的失敗,認爲我可用的字符串並不總是完全匹配全名。

歡迎任何建議。

Tamar

+0

這已經變得更有趣了。我隔離了INSERT命令(用於InvoiceLine和Invoice)並一次發送一個;當我這樣做時,完全相同的插入序列運行​​沒有問題。但是,當我遍歷構建命令併發送它們的代碼時,如上所述,最終插入失敗。我確定INSERT命令是相同的,因爲我將它們寫入程序的日誌並從那裏剪切並粘貼來進行手動測試。 INSERT之間的其他SQL命令是否會導致問題?我發送的唯一命令是SELECTs以獲取ListID。 – 2012-01-19 21:21:05

回答

1

解決了它。事實證明,引用的項目在其中一個項目中,而不是發票本身。我錯過了一個訂單項中的RefID爲空的情況。

絕對不是一個有用的錯誤消息。

0

Quickbooks中不存在該項目。首先在Quickbooks中創建它,然後才能在發票中引用它。

+0

但是什麼項目?它只是說(Item「」)。我所引用的所有ListID已經存在。 – 2012-01-19 21:12:17

相關問題