Файл данных компании QuickBooks уже открыт и отличается от запрошенного

Используя приложение, написанное на vb.net, и используя qbfc8 для подключения к QB Enterprise 11. Я делаю простой вызов в файл компании, чтобы открыть, а затем закрыть соединение. Это должно привести к тому, что приложение QB выведет всплывающее сообщение с вопросом, разрешено ли этому приложению иметь доступ к этому файлу, а затем я могу назначить его конкретному пользователю для входа в систему.

Все это отлично работает, за исключением одного конкретного сервера, где мне еще предстоит заставить его когда-либо выводить запрос приложения на доступ к QB. Всегда возвращается сообщение об ошибке: «Файл данных компании QuickBooks уже открыт и отличается от запрошенного.» с кодом ошибки -2147220470.

Я использую эти инструкции для доступа к файлу: http://support.quickbooks.intuit.com/support/pages/inproducthelp/Core/QB2K12/ContentPackage/Verticals/Retail/rr_sdkapp_access_preferences.html

Также при этом я работаю в однопользовательском режиме: http://support.quickbooks.intuit.com/support/articles/SLN41168

На этом сервере есть несколько файлов QB, но ни один из них не должен использоваться прямо сейчас, но есть ли способ узнать, есть ли на сервере доступ к каким-либо файлам QB, из-за которых всплывающее окно не появляется?

Благодаря тонну!


person Captain America    schedule 06.01.2014    source источник
comment
Я решил это, установив приложение, подключающееся к файлу QB на том же сервере. Затем (это важная часть рецепта) я изменил путь с пути UNC по умолчанию на локальный путь, и это волшебным образом сработало.   -  person Captain America    schedule 07.01.2014


Ответы (2)


Я не знаю прямого способа узнать, какой файл компании в данный момент открыт (если он есть), без вызова BeginSession и проверки на наличие ошибок. Если вы укажете имя файла компании, а открыта другая компания, вы получите сообщение об ошибке «Файл данных компании QuickBooks уже открыт и отличается от запрошенного.».

Если вы не укажете название компании при вызове BeginSession, QuickBooks будет использовать любой открытый файл компании и представит приглашение (при условии, что права еще не предоставлены). Однако, если файл компании не открыт, вы получите сообщение об ошибке «Не удалось запустить QuickBooks.» (если QuickBooks вообще не запущен) или «Если компания QuickBooks файл данных не открыт, вызов метода «BeginSession» должен включать имя файла данных.», если QuickBooks открыт, но не имеет открытого файла компании.

Большинство программ сохраняют файл компании, с которым они связаны, поэтому они передают имя файла в своем вызове BeginSession, а затем проверяют наличие «Файл данных компании QuickBooks уже открыт и отличается от файла запрошено." и представить информацию клиенту в чистом виде. Например, программное обеспечение QuickBooks POS подскажет покупателю, хочет ли он продолжить использовать старый файл, который был настроен ранее, или хочет ли он создать ссылку на файл, который в данный момент открыт.

person TravestyOfCode    schedule 07.01.2014
comment
Спасибо за помощь! - person Captain America; 07.01.2014

Я решил это, установив приложение, подключающееся к файлу QB на том же сервере. Затем (это важная часть рецепта) я изменил путь с пути UNC по умолчанию на локальный путь, и это волшебным образом сработало. (Я ненавижу магию! Если бы кто-нибудь мог объяснить, почему это происходит, было бы здорово.)

Теперь, когда у меня есть встроенная авторизация приложения для этого приложения, добавленная в файл QB, я теперь могу получить к нему доступ с других рабочих станций, используя то же приложение и используя путь UNC для указания на файл.

person Captain America    schedule 07.01.2014