quickbooks - 通过 QBXML 连接到已打开的 Quickbooks 实例

标签 quickbooks qbxml

我正在尝试帮助拥有通过 QBXML SDK 与 Quickbooks 集成的 Web 应用程序 (ASP/C#) 的客户。

我想在用户 session 中打开与已处于事件状态的 QuickBooks 实例的连接。

有问题的相关代码:

    if (rp == null)
        rp = new RequestProcessor2();

    if (!connected)
    {
        rp.OpenConnection2("IMS", "Internal Management System", QBXMLRPConnectionType.localQBD);
        connected = true;
    }

    if (xticket == null)
        xticket = rp.BeginSession(cfg.qbfile, QBFileMode.qbFileOpenMultiUser);

实际上,这将尝试通过 DCOM 启动 Quickbooks 的新实例,这不是一个可行的选择。根据 QBSDK 文档,我尝试将 null 传递给 BeginSession 的第一个参数,该参数应该使用打开的 qbw 文件。

但是,它没有像预期的那样连接到正在运行的 Quickbooks 实例,而是启动了一个新实例,最终产生错误:

“如果 QuickBooks 公司数据文件未打开,则对“BeginSession”方法的调用必须包含数据文件的名称。”

运行 Web 应用程序的 IIS AppPool 使用与我尝试连接的 Quickbooks 实例相同的用户。

这一切都是由不再可用的第三方设置的,当然,他们没有留下任何有关该系统如何工作的文档。欢迎任何帮助。

最佳答案

I'm trying to help a client who has a web application (ASP/C#) that integrates with Quickbooks via the QBXML SDK.

不幸的是,这种方法行不通。

QuickBooks 的一个众所周知的限制是:

  1. QuickBooks 必须在您尝试连接的用户 session 中运行
  2. QuickBooks 必须能够访问 GUI(它使用 GUI 消息泵来运行)

由于您的 Web 应用程序是从 IIS 中运行的,因此这两个条件都不满足,并且与 QuickBooks 的连接将失败。您应该改用 QuickBooks Web Connector。

I want to open up a connection to an already active QuickBooks instance in a user session.

不幸的是,QuickBooks 不允许这样做。

关于quickbooks - 通过 QBXML 连接到已打开的 Quickbooks 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27977822/

相关文章:

QuickBooks 连接错误

r - 将 R 连接到 Quickbooks

java - 如何使用 QuickBooks Online Java SDK 创建发票实体

java - 我如何测试 quickbooks QBXML 和标签的有效性

quickbooks - 如何使用 QBXML 将行项目添加到现有销售订单

javascript - Intuit connectToIntuit 按钮没有将控制权传回父页面

c# - Quickbooks Qbxml 创建无行项目的发票(空交易)

java - 如何管理 QuickBooks XML 的额外 xml 声明

c# - 出现错误 -2147220472(无法启动 Quickbooks)