2

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

最近,我对其进行了升级,使用 QB 的“高级库存”模块为客户的发票项目添加了一个“InventorySite”。我同时升级到 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,这是该客户端站点之前使用的版本,因为我希望能够回滚(我确实这样做了)。这可能是问题吗?

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

4

1 回答 1

4

就我而言,问题是我使用了错误的字段。我应该使用“InventorySiteRef”而不是“InventorySiteLocationRef”,它指的是站点内的 bin 编号。一旦我做了这个更正,一切正常。

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

注意:这些更改中的大多数尚未在 QuickBooks 中实现。这些是规范更改,仅允许在 QuickBooks 的未来版本中实施。

于 2013-07-16T12:00:26.927 回答