Oracle smart view нельзя установить свойство installed класса addin

Обновлено: 04.07.2024

We are facing issues with the add-ins of 'Oracle Smart View 11.1.2.5.900' on Office 365.

We have no issue on Office 2010 with the same AppV package.

To open the Office applications in the bubble we added shortcuts in the AppV package.

There are two add-ins:

When we start Excel we get an error from VB stating: Object library not registered.

"HsAddin.dll" is an add-in used by Excel, Word, Powerpoint and Access.

In Excell that add-in works fine but not in Word.

When we open Word the add-in is loaded but when using it we get an error that the Active document cannot be found.

In Powerpoint the add-in does not even load.

We installed the application locally on one of our GTU SBC servers running Office 365 and that runs fine.

We believe something is wrong or missing in our package, but we cannot figure out what.

Are there instructions from Microsoft how to get add-ins working which are part of an AppV package in Office 365?

Thanks for your help.

Ответы

We upgraded the App-V client to version 5.1.126.0 which solved many of the issues.

The remaining issues seem to be related to the software vendor and will need to investigated.

Все ответы

We upgraded the App-V client to version 5.1.126.0 which solved many of the issues.

The remaining issues seem to be related to the software vendor and will need to investigated.

we use appv in our non-persistent XenApp with ivanti for profile management and groups, we're on version 5.04001.0. we generally have issues with addins not loading such as Thomson reuters, smartview in the past though we made it into an MSI install and also removed a 3rd party vendor addin for templates which helped speed up excel and reduce latency, anyway never knew there were newer versions of APPV

I must agree with you Thomson Reuters ( especially their Datastream addin) addins are no fun. The only addin we do not virtualize is the Bloomberg Excel addins, because of the update frequency of the client.

I must agree with you Thomson Reuters ( especially their Datastream addin) addins are no fun. The only addin we do not virtualize is the Bloomberg Excel addins, because of the update frequency of the client.

Roy Essers

Right the documentation even states recommend a GPU, we obviously don't have Nvidia grid too expensive.

Regarding the error 'VB stating: Object library not registered', I see this often if Office 365 is not activated and has gone past its grace period of 5 days. If this is the case, either activate it, or rebuild your test machine with Office 365 not launched, and take a snapshot at that point. Then whenever you go back to that snapshot, you'll have 5 days to play with it.

By the fact you've got it loading, I assume you've already set these keys:

For the COM add-in each time it fails to load it will change the LoadBehavior value in the registry from 3 to 2. If the add-in was registered under HKLM, this 2 value will be under HKCU. You'll need to change it back to re-test the loading of the add-in.

Set the environment variable VSTO_SUPPRESSDISPLAYALERTS=0 before launching the application - that way, if the add-in fails to load it should pop up a prompt giving a clue why.

Долго рыл информацию о создании полноценных кастомизированных вкладок на ленте, и нашёл статью и бесплатную утилиту с помощью которых за один день создал полноценную закладку на ленту, повесил свои кнопочки, и всё замечательно работает. Кстати, я был на столько впечатлён и толковостью статьи и удобством, продуманностью утилиты, что пожертвовал денежку и туда и туда. У автора утилиты, кстати, есть много интересного на его сайте. Вот, чем и делюсь.
А теперь вопрос знатокам:
Как заставить XLAM-файл автоматически устанавливаться при двойном клике?

При двойном клике надстройка подключается, но закрытие документа приводит к её удалению.
Странные люди на разных форумах рекомендуют прописать:

хотя свойство installed только для чтения.
В общем, развёрнутого ответа я не нашёл.

Для ответа на этот вопрос, думаю, надо разобраться, какое событие возникает при двойном клике на XLAM-файл. Если Workbook_Open, то половина дела есть, и остаётся только выяснить какой метод какого объекта позволит установить надстройку.

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь


Свернуть ленту (Minimize the Ribbon) при запуске
Как сделать, чтобы при запуске моего файлика Access, автоматически сворачивалась лента?

Добавление надстройки Excel в Ribbon
Здравствуйте. Написал я две надстройки на VBA для Excel, и захотелось мне поместить две кнопки для.

Скрыть ленту меню в Access при запуске приложения
Коллеги, добрый день! Кто поможет с кодом, скрывающим ленту меню при запуске приложения (вкладки.

Добавить на ленту (ribbon) свой элемент управления в надстройке для Office (VSTO)
Коллеги, посоветуйте, как выйти из тупика. Делаю надстройку VSTO, чтобы облегчить рутинную работу.

SrgKord, ну ведь вы правильно нашли рекомендации. Если хотите убедиться в этом, запустите рекодер, подключите через меню вашу надстройку, закройте рекодер. Получите строку кода даже без Application. После этого сохраните файл и запустите. Значит всё-таки не ReadOnly.
А можно подключить просто через меню и сохранить файл.

Burk, я первым делом проверил предложенный метод, но получил "out of range", тогда я заподозрив, что может быть это свойство для чтения только, полез на msdn, и вроде как (теперь уже я не уверен) получил этому подтверждение.
Сегодня проверил снова на другом примере, получил ту же ошибку.

Нашёл ошибку. Строка 7 должна выглядеть так:

Теперь у меня этот же код не работает, пишет: "Невозможно получить свойство Add класса AddIns", ранее было аналогичное "Невозможно получить свойство Installed класса AddIns".
Подозреваю, что у обеих ошибок одна причина. Разбор полётов показывает, что VBA ловит глюки. Например, в приведённом коде:
Переменная addFullName получает полный путь до надстройки, которая по-факту не существует (папочка надстроек открыта, я всё вижу). И далее работает с несуществующим объектом.

SrgKord, что=то я плохо стал разбираться в медицине. Если Хлам со всем содержимым уже подключен, что проверяет строка 6, то зачем дальше копья ломать?
правильно проверить все подключенные надстройки и ЕСЛИ НЕТ то ДА, а ДА то НЕТ

Добавлено через 12 минут
SrgKord, и ещё строка 7 FileName:= "addFullName" Но ведь имя файла уже находится в строчной переменной и зачем эту строчную помещать в кавычки. Это уже будет не строчная с именем файла, строка, чудом совпавшая именем переменной. Кавычки то зачем.

Это я элементарно кавычки не заметил. Но дело это не изменило. Вообще меня удивляет, что это условие (стр.6) успешно выполняется, хотя надстройка должна быть удалена.

что=то я плохо стал разбираться в медицине. Если Хлам со всем содержимым уже подключен, что проверяет строка 6, то зачем дальше копья ломать?
правильно проверить все подключенные надстройки и ЕСЛИ НЕТ то ДА, а ДА то НЕТ Я использовал пример с msdn. Там он был чуть иной, я его слегка изменил. Рабочий пример у меня побольше, и там всё именно как вы и сказали: если такое имя есть, то удаляем, иначе подключаем. Вы неправильно трактуете . Installed отключает/подключает надстройку, а не удаляет ее из списка надстроек. Соответственно, если вы ее находите в списке надстроек (в цикле), то необходимо лишь изменить Installed, а добавлять только в случае когда ее нет в этом списке после чего для нее станавливать Installed в true

SrgKord, вот и Step_UA говорит то же. Может вы пришлете коротенький файл и какую-либо надстройку с любым сабом, сочетание которых дает ошибку. Ну лень самому делать модельный пример

Кстати, попробуйте перед циклом сделать Istaled=false, сработает интересно

Добавлено через 16 минут
SrgKord, всё-таки сделал модельный пример на надстройке, которая у меня была не подключена, записал через рекодер, всё работает.

Сделайте со свей то же самое через рекодер вручную и получите работающий код

Добавлено через 10 минут
SrgKord, попутно вопрос, вы свои надстройки поместили тоже в стандартную папку AddIns?

Кстати, попробуйте перед циклом сделать Istaled=false, сработает интересно

Когда установка installed в True давала ошибку, установка в False проходила нормально.

всё-таки сделал модельный пример на надстройке, которая у меня была не подключена, записал через рекодер, всё работает.

Да у меня вот тоже работало. Потом перестало. При чём перестало после того, как я сделал и запустил xlam. Это дало ошибку, какую я ещё не видел раньше, и начались другие ошибки, где их раньше не было.

попутно вопрос, вы свои надстройки поместили тоже в стандартную папку AddIns?

Да, у меня в скрипте методом fso.copyfile копируется надстройка в эту папку, затем installed ставится в true.

Вы неправильно трактуете . Installed отключает/подключает надстройку, а не удаляет ее из списка надстроек. Соответственно, если вы ее находите в списке надстроек (в цикле), то необходимо лишь изменить Installed, а добавлять только в случае когда ее нет в этом списке после чего для нее станавливать Installed в true

Я подозревал, что именно так, иначе бы назвали метод delete. Но как удалить надстройку, что её не было даже в окне надстроек экселя (там она остаётся в качестве отключенной)?

Может вы пришлете коротенький файл и какую-либо надстройку с любым сабом, сочетание которых дает ошибку. Ну лень самому делать модельный пример Но как удалить надстройку, что её не было даже в окне надстроек

Кстати, ваш рар у меня не раскручивается, не все же обладают такой мощной техникой как у вас

Добавлено через 1 час 9 минут
SrgKord, не поленился, сходил к другу и разархивировал ваш хлам. При его запуске вылетела ошибка в строке

Да я ж это всё знаю, делал всяко-разно, да видимо глюки словил. Хотел даже скрин прислать, что файла нет в папке, условие проверки не выполняется, а в проекте хлам висит. Вероятно надо чаще офис закрывать.

Кстати, ваш рар у меня не раскручивается, не все же обладают такой мощной техникой как у вас Эт как? Обычный рар, вообще ничего не задавал, по-умолчанию всё. Ну ладно, ещё раз, вот. Пароль 1234 И, вообще, зачем в процессе разработки программы нужен Хлам? Может на этом этапе просто загружать его как обычный экселевский? Да я б рад так делать. Да ведь если, например, задаёшь Set wb = ThisWorkbook, то имя в переменной будет именно этого экселевского. Экселевский же надстройкой не добавишь, придётся руками прописывать путь до хлама. Да и для чистоты эксперимента, лучше проверять invivo, тем более, когда с надстройками работа идёт.
Я ведь первый раз сделал всё, работало, проверил. Сделал хлам. Запустил - ошибка. то что должно быть мне и так ясно, CVTB, если я не ошибаюсь, это временные файлы экселя. При ручном копировании страниц из одного файла в другой могут образовываться ненужные ссылки, тем более, если после копирования вылетела программа. Не поленитесь поставьте MSGBOX (Debug,Print) Wb.name
Может на этом этапе просто загружать его как обычный экселевский?

Я имел ввиду, что вставить для начала загрузку Xlam в проект как xlsm

Добавлено через 7 часов 37 минут
SrgKord, нарисовал свой файл 2003 (xla) скопировал ваш код и для отладки кое-что убрал (непонятно заче открываемые и закрываемые эксель-файлы. На всякий случай Килл сделал ещё разок. И работает. Посмотрите и сравните.
Папка для убийства, естественно, моя

Проблема решена!
Нашёл причину ошибки здесь.
Оказалось, что при выполнении Addins.Add происходит повторное открытие книги, и повторно выполняется код, код зацикливается.
Необходимо остановить обработку событий перед добавлением надстройки!
Теперь надстройка автоматически устанавливается по двойному клику:

Решение проблемы было иллюзией. Дело в том, что работая с надстройкой я её прежде всего добавил в Excel стандартным путём, через интерфейс, а в дальнейшем уже проводил махинации, удалял, добавлял. Но надстройка всегда оставалась добавлена в коллекцию AddIns, из какой-то другой локации (а эта надстройка была и в загрузках, и в документах, и на рабочем столе, и папке надстроек, и на сетевом ресурсе), поэтому любые манипуляции с ней проходили успешно.
Но, когда я начал работать с новой надстройкой, которая предназначалась для другой машины, где этой надстройки в коллекции нет, я получил болт - метод AddIns.Add ни в какую не добавляет надстройку в коллекцию, даже не смотря на то, что надстройка сама копируется прямиком в папочку надстроек перед вызовом метода Add, и всякий раз мне редактор отвечает, что

В этой проблеме я разобрался, и дело вот в чём:
Метод Add предназначен, судя по описанию, для копирования надстройки с флешки. Если вызывать метод для надстройки, лежащей на жестком диске, с высокой вероятностью будет ошибка.

выдаёт ту самую ошибку, если запускается с жесткого диска

Другой способ - копировать методом fso.CopyFile в папку надстроек, и затем просто установить для неё свойство .installed = True не работает, потому что надстройка должна уже находиться в папке надстроек к моменту открытия файла надстройки. В этом случае надстройка подхватывается экселем, и её можно найти перебором по надстройкам. Но если надстройка копируется в папку только в момент выполнения вашего кода, то ексель не обнаруживает её, во всяком случае, до конца его выполнения.

Выход видится мне такой:
Либо копировать файл надстройки скриптом в батнике, либо добавлять к коду проверку по надстройкам, что если таковой надстройки нет, то копировать и закрыть документ, а если уже есть, то установить. Будет необходимость повторного открытия.
Первый вариант мне представляется более подходящим, т.к. во втором случае после первого открытия файла надстройки пользователь не увидит никаких изменений, и решит, что не работает. В первом случае есть некоторая вероятность, что пользователь всё же сперва запустит батник.

Читайте также: