17.01.2017, 13:20 | #1 |
Участник
|
Аксапта не хочет подключаться к OlapAX
Доброго времени уважаемые программисты! Такая трабла: не можем подключиться к серверу ОЛАП. Упрощенно схема подключения такая:
static void JobConnect(Args _args) { com self; ; self=new COM('{B492C386-0195-11D2-89BA-00C04FB9898D}'); // info(int2str(self.version())); self.connect('OLAPAX');//OLAPAX - имя сервера } Выдает следующую ошибку: Метод "connect" в COM-объекте класса "{B492C386-0195-11D2-89BA-00C04FB9898D}" возвратил код ошибки 0x80040050 (<неизвестно>), который означает: Cannot open connection to Analysis server 'OLAPAX'. Cannot connect to the server 'OLAPAX'. The server is either not started or too busy. Версию система возвращает всегда 8ю. Мною замечено (пробовал подключаться к ОЛАП через Excel 2003), что если в качестве провайдера выбран Microsoft OLE DB Provider for OLAP Services 8.0, то при подключение выдается ТОЧНО ТАКАЯ ЖЕ ошибка (Cannot connect to the server 'OLAPAX'. The server is either not started or too busy). Если же выбирать провайдер Microsoft OLE DB Provider for Analysis Services 9.0, то ошибки никакой не возникает. Соответственно вопросы: 1) почему для версии 8.0 как для DSO.Server так и для Microsoft OLE DB Provider for OLAP Services 8.0 выскакивает данная ошибка; 2) есть ли возможность ее устранить 3) каким образом можно модифицировать этот джоб, чтобы он 9ю версию подхватывал PS. Аксапта 4.0, SQL сервер 2008 Последний раз редактировалось CHESER85; 17.01.2017 в 13:30. |
|
17.01.2017, 20:43 | #2 |
Участник
|
Приветствуею!
Версия подднрживает CLR? Если да, попробуйте как указано здесь: PivotTable и OLAP Только не забудьте поключить соответствующую библиотеку. |
|
|
За это сообщение автора поблагодарили: CHESER85 (1). |
18.01.2017, 08:51 | #3 |
Участник
|
спасибо! изучил глубоко всю эту тематику, и пришел в выводу что перенос куба стандартными средствами Microsoft Dynamics AX 4.0 сделать невозможно и вот почему. Там используется DSO версии 8.0, и соответственно за связь с сервером отвечают библиотеки DSO которые находятся в папке C:\Program Files\Common Files\Microsoft Shared\DSO.
msmddo80.dll и msmdnet.dll. Похоже в библиотеке msmdnet.dll какая то ошибка и из за этого не подключается к серверу... Исправить невозможно, т.к. всё устарело уже... |
|
18.01.2017, 09:55 | #4 |
Moderator
|
А почему вы подключаетесь к COM-объекту с помощью конкретного CLSID ? Просто мне казалось, что правильнее указывать ProgId (типа 'Excel.Application'), или даже ProgId для вашей конкретной версии (типа 'Excel.Application.10'). Я сам никогда не пробовал, но если верить этой статье, то progid - MSOLAP, а обращаться к конкретной версии клиента можно как 'MSOLAP.4', 'MSOLAP.5' и тп.
|
|
18.01.2017, 10:23 | #5 |
Участник
|
Я просто упрощенно показал, как Аксапта 4.0 подключается к серверу ОЛАП. Она обращается именно по этому ключу (Classes\DSOServer\new)
void new() { self=new COM('{B492C386-0195-11D2-89BA-00C04FB9898D}'); } если заменить на DSO.Server результат тот же самый будет. |
|
18.01.2017, 10:52 | #6 |
Moderator
|
А попробовать поменять DSO.Server на DSO.Server.xx (где xx - номер версии)?
Просто у вас где-то в реестре должны быть указаны все установленные номера версий. Можно просто тупо там поискать по progId DSO.Server. Вероятно - в зависимости от XX можно достучаться до разных версий DSO |
|