【问题标题】:Why is the company file name supplied by the web service?为什么 Web 服务提供公司文件名?
【发布时间】:2015-09-14 14:54:12
【问题描述】:

我了解,要访问当前未在 QuickBooks 中打开的公司,Web 服务需要向 QuickBooks Web 连接器提供文件位置作为 authenticate() 调用的返回值。

这对我来说似乎倒退了。为什么网络服务要负责告诉网络连接器相关的公司文件在哪里?由 Web 连接器管理不是更有意义吗?

这是我在 QuickBooks Web 连接器中找到的相关说明 程序员指南

  1. 如果您的 Web 服务想要尝试不同的公司,请在返回的字符串中提供公司路径名。 (如果您想使用碰巧打开的任何公司文件,您可以提供一个空字符串。)Web 连接器将通过尝试使用提供的字符串再次连接到 QuickBooks 来做出响应。

为什么 Web 服务会尝试不同的公司?

为什么网络服务会执行第二个操作,而不是简单地完全停止?在实践中,当 Web 服务记住从会话到会话的公司文件路径(推荐的做法)并希望回退以使用当前在 QuickBooks 中打开的任何公司文件时使用此方法(通过响应 connectionError 调用一个空字符串)。

这并不像看起来那么随意。将 Web 服务添加到 Web 连接器后,Web 连接器会将唯一的 FileID 作为专用数据扩展名存储在指定的公司中。因此,Web 服务始终可以通过检查在数据交换序列中 Web 连接器的第一个 sendRequestXML 调用中返回给您的 Web 服务的 CompanyRet 来验证它是否正在与预期的公司文件通信。 (检查预期 FileID 的数据扩展名列表。)

这似乎是一种糟糕的最终用户体验;如果他们移动公司文件(假设他们希望 Web 连接器在没有打开 QuickBooks 的情况下运行),则 Web 服务将失败,直到该路径在服务器端更新。最终用户可以在不知道会破坏事物的情况下执行此操作,这似乎是完全合理的。

为什么是这样的结构?更重要的是:有没有办法解决这个问题?

【问题讨论】:

    标签: quickbooks qbwc


    【解决方案1】:

    为什么是这样的结构?

    因为这就是 Intuit 构建它的方式。

    有没有办法解决这个问题?

    没有。

    【讨论】:

    • 我担心这会是答案,但我感谢您的确认。很容易理解 QBWC 其余部分的“颠倒”通信模型背后的逻辑,但这个特定方面对我来说毫无意义令人沮丧。哦,好吧!
    • 是的,这有点令人失望。有传言说会有新的 Web 连接器版本……我希望我有时间自己构建一个来解决此类问题。
    猜你喜欢
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多