使用在vb.net中编写的应用程序并使用qbfc8连接到QB Enterprise 11.我正在调用公司文件以打开然后关闭连接。这会导致QB应用程序弹出一条消息,询问是否允许此应用程序访问此文件,然后我可以将其分配给特定用户以登录为。
这一切都很有效,除了在这个特定的服务器上,我还没有得到它来弹出访问QB的应用程序请求。始终返回错误,指出“ QuickBooks公司数据文件已打开且与请求的文件不同。”,错误代码为 -2147220470 。
此外,我在执行此操作时处于单用户模式:http://support.quickbooks.intuit.com/support/articles/SLN41168
在这台服务器上有一些QB文件但是现在都不应该使用它们,但是有一种方法可以找出服务器上是否有任何正在保存弹出窗口的QB文件从出现?
非常感谢!
答案 0 :(得分:1)
在没有调用BeginSession并检查错误的情况下,没有直接的方法可以查看当前打开的公司文件(如果有)。如果您提供公司文件名并且其他公司已打开,您将收到“一个QuickBooks公司数据文件已经打开,它与请求的文件不同。”错误。
如果在调用BeginSession时省略公司名称,QuickBooks将使用任何公司文件打开并显示提示(假设尚未授予权限)。但是,如果没有打开公司文件,则会出现错误“无法启动QuickBooks。”(如果QuickBooks根本没有运行)或“如果QuickBooks公司数据文件未打开,对“BeginSession”方法的调用必须包含数据文件的名称。“如果QuickBooks已打开但没有打开公司文件,则会出错。
大多数程序将保存已链接到的公司文件,因此他们将在BeginSession调用中传递文件名,然后检查“一个QuickBooks公司数据文件是否已打开且不同从一个请求。“错误,并以干净的方式向客户提供信息。例如,QuickBooks POS软件将提示客户是否要继续使用之前设置的旧文件,或者是否要链接到当前打开的文件。
答案 1 :(得分:0)
我通过在同一台服务器上安装连接到QB文件的应用程序解决了这个问题。然后(这是配方的重要部分)我改变了从默认的UNC路径到本地路径的路径,它神奇地工作了。 (我讨厌魔术!如果有人能解释为什么会发生这种情况那么那就太好了。)
现在我已将此应用程序的集成应用程序授权添加到QB文件中,现在我可以使用相同的应用程序从其他工作站访问它,并使用UNC路径指向该文件。