据我所知,要访问当前未在QuickBooks中打开的公司,Web服务需要为QuickBooks Web Connector提供文件位置作为authenticate()
调用的返回值。
这似乎是我的倒退。为什么Web服务负责告诉Web连接器相关公司文件在哪里?它不会更有意义由Web连接器管理吗?
以下是我在 QuickBooks Web Connector中找到的相关说明 程序员指南:
- 如果您的网络服务想要尝试其他公司,请在返回的字符串中提供公司路径名。 (如果要使用任何公司文件恰好打开,则可以提供空字符串。)Web连接器将通过尝试使用提供的字符串再次连接到QuickBooks来响应。
醇>为什么Web服务会尝试不同的公司?
为什么Web服务会执行这些操作中的第二个而不仅仅是完全停止?实际上,当Web服务记住会话之间的公司文件路径(建议的做法)并且想要使用回退来使用QuickBooks中当前打开的任何公司文件时(通过响应connectionError调用),使用此方法一个空字符串)。
这并不像看起来那样杂乱无章。将Web服务添加到Web连接器时,Web连接器将唯一的FileID存储为指定公司中的专用数据扩展。因此,Web服务始终可以通过在数据交换序列中检查Web连接器的第一个sendRequestXML调用中返回到Web服务的CompanyRet,来验证它是否正在与预期的公司文件进行通信。 (检查数据扩展名列表中是否有预期的FileID。)
这似乎是一种糟糕的最终用户体验;如果他们移动他们的公司文件(假设他们希望Web连接器在没有打开QuickBooks的情况下运行),则Web服务将失败,直到在服务器端更新该路径。似乎完全合理的是,最终用户可以在不知道会破坏事情的情况下做到这一点。
为什么这样结构?更重要的是:有没有办法解决这个问题?
答案 0 :(得分:2)
为什么这样结构?
因为这是Intuit构建它的方式。
有办法解决这个问题吗?
没有。