在QBSDK 12中将InventorySite添加到Quickbooks发票时出错

时间:2013-07-12 20:38:13

标签: quickbooks qbxml qbfc

我有一个用C#编写的QBFC应用程序,它从调度程序自动运行,并且除其他外,将发票从远程客户端插入QB。

最近,我将其升级为添加“InventorySite”以使用QB的“高级库存”模块为客户开具物品。我同时升级到了QBFC 12。

当程序尝试插入发票时,程序现在出错,表示InventorySiteLocationRef元素无法识别。所有其他功能都照常工作。

以下是QBSDKLog.txt的摘录:

20130712.143859 I   736 QBSDKProcessRequest Application named 'IOS Briefcase Sync' starting requests (process 1264).
20130712.143859 W   736 QBNInvoiceAdd::HandleAggregate  unexpected tag 'Memo'.
20130712.143859 E   736 XercesSAXErrorHandler   Unknown element 'InventorySiteLocationRef' -- error at line 19, column 26 in XML data.
20130712.143859 I   736 MsgSetHandler   Parser error, finishing.
20130712.143859 I   736 QBSDKProcessRequest Application named 'IOS Briefcase Sync' finishing requests (process 1264), ret = 1.
20130712.143859 E   1264    RequestProcessor    Process Request error = 80042500, There was an error when parsing the provided XML file.
20130712.143937 I   1264    RequestProcessor    Connection closed by app named 'IOS Briefcase Sync'
20130712.143937 I   1264    RequestProcessor    ========== Ended Connection ==========

客户端正在运行Quickbooks Enterprise Solutions Manufacturing and Wholesale Edition 12

我使用随SDK提供的安装程序安装了QBFC12_0和QBXMLRP2。 HostQuery返回11作为支持最高的QBXML主要版本,这是我在创建请求时使用的版本。

我没有卸载QBFC7,这是之前在此客户端站点上使用的版本,因为我希望能够回滚(我做过)。这可能是问题吗?

我是否需要安装或卸载其他内容?重启会有帮助吗?我无法让客户端站点的任何人重新启动。

1 个答案:

答案 0 :(得分:3)

在我的情况下,问题证明是我使用了错误的字段。我应该使用“InventorySiteRef”而不是“InventorySiteLocationRef”,它引用站点中的bin号。一旦我做了这个修正,一切都有效。

然而,“InventorySiteLocationRef”的问题仍然存在。它是QBFC中的合法字段,而Intuit所谓的无所不知的屏幕参考并不表示它可能会失败。但是,如果不是所有版本的QB都会失败。我终于在QBFC 12发行说明中找到了一个相当广泛的字段列表,这些字段似乎是合法的,但实际上并不起作用。以下是Intuit如何描述它们。您可以搜索此文本以查找发行说明中的​​列表:

注意:大多数这些更改尚未在Quick-中实现 图书。这些是规范更改,仅允许在将来实施 发布QuickBooks。