我有一个用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,这是之前在此客户端站点上使用的版本,因为我希望能够回滚(我做过)。这可能是问题吗?
我是否需要安装或卸载其他内容?重启会有帮助吗?我无法让客户端站点的任何人重新启动。
答案 0 :(得分:3)
在我的情况下,问题证明是我使用了错误的字段。我应该使用“InventorySiteRef”而不是“InventorySiteLocationRef”,它引用站点中的bin号。一旦我做了这个修正,一切都有效。
然而,“InventorySiteLocationRef”的问题仍然存在。它是QBFC中的合法字段,而Intuit所谓的无所不知的屏幕参考并不表示它可能会失败。但是,如果不是所有版本的QB都会失败。我终于在QBFC 12发行说明中找到了一个相当广泛的字段列表,这些字段似乎是合法的,但实际上并不起作用。以下是Intuit如何描述它们。您可以搜索此文本以查找发行说明中的列表:
注意:大多数这些更改尚未在Quick-中实现 图书。这些是规范更改,仅允许在将来实施 发布QuickBooks。