AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.11.2007, 14:03   #1  
cutter is offline
cutter
Участник
 
6 / 10 (1) +
Регистрация: 06.04.2007
COM коннектор на 4-й аксапте
здравствуйте,
подскажите пожалуйста как правильно проинициализировать COM-коннектор в 4-й аксапте, при вызове метода ax.Logon('Admin','','',''); вылетает ошибка "Failed to initialize Business Connector". Подключиться пытаюсь из Delphi 2007. Полный код подключения:

uses
SysUtils, ComObj, ActiveX;
var ax, ret: Variant;
begin
try
CoInitialize(nil);
ax:=CreateOleObject('AxaptaCOMConnector.Axapta3.1');
ax.Logon('Admin','','','');
...

Все примеры которые я смотрел в основном написаны для 3-й версии аксапты.
Отзовитесь пожалуйста кто уже решал данную задачу.
Старый 30.11.2007, 00:34   #2  
Serge Kutin is offline
Serge Kutin
Участник
 
3 / 10 (1) +
Регистрация: 20.11.2007
Lightbulb COM коннектор на 4-й аксапте
Vot takoj primer est v oficialnom kurse MS (on, pravda na VB, no vpolne nagladny):

Dim company As String
Dim language As String
Dim objectServer As String
Dim configuration As String
Dim axapta1 As New Axapta
company = "dmo"
language = "en-us"
objectServer = "objectServerName"
configuration = "configurationName"
axapta1.Logon(company, language, objectServer,
configuration)

Mogu predpolozhit, chto vy ne mozhete zakonnectitsa iz-za togo chto ne ukazali ostalnye parametry - naprimer objectServer i configuration. Poprobujte peredat vse 4 parametra.
Старый 30.11.2007, 00:38   #3  
Serge Kutin is offline
Serge Kutin
Участник
 
3 / 10 (1) +
Регистрация: 20.11.2007
Lightbulb
esli ne pomoget - poprobujte eshe zaloginitsia ot imeni Business Connector Proxy User:

Dim company As String
Dim language As String
Dim objectServer As String
Dim configuration As String
Dim axapta1 As Axapta
Dim bcProxyCredentials As New
NetworkCredential("proxyUsername","proxyPassword","domain")
Dim username As String
Dim domain As String
company = "dmo"
language = "en-us"
objectServer = "objectServerName"
configuration = "configurationName"
username = "proxyUsername"
domain = "domain"
axapta1.LogonAs(username, domain, bcProxyCredentials,
company, language, objectServer, configuration)
Старый 30.11.2007, 06:33   #4  
cutter is offline
cutter
Участник
 
6 / 10 (1) +
Регистрация: 06.04.2007
да всё оказалось гораздо проще, сработала вот какая конструкция
...
uses
SysUtils, ComObj, ActiveX;
var ax, ret: Variant;
begin
try
CoInitialize(nil);
ax:=CreateOleObject('AxaptaCOMConnector.Axapta3.1');
ax.Logon();
...
все параметры берутся из настроек клиента
спасибо за ответ
Старый 24.07.2009, 11:20   #5  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
Angry Регистрировать AxCom.dll ?
Цитата:
Сообщение от cutter Посмотреть сообщение
здравствуйте,
подскажите пожалуйста как правильно проинициализировать COM-коннектор в 4-й аксапте, при вызове метода ax.Logon('Admin','','',''); вылетает ошибка "Failed to initialize Business Connector". Подключиться пытаюсь из Delphi 2007.

Такая же ошибка тоже в 4-ке. уже все логоны перепробовал. и все одно и тоже, запускал и на сервере и на клиенте.
Может как то нужно зарегистрировать axcom.dll ?
пробовал только вручную через regsvr32. непомгло
Старый 24.07.2009, 12:08   #6  
plumbum is offline
plumbum
Участник
Соотечественники
 
182 / 86 (3) ++++
Регистрация: 07.12.2007
Адрес: Vienna, AT
Поищите на msdn примеры на C#, там все толково сделано.
__________________
http://www.axdevposts.blogspot.com
Пришел, уведел.... отойди, дай другому увидеть!
Старый 24.07.2009, 14:14   #7  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
искал. там только на .Net коннектор.
но я думаю дело даже не в том как я напишу логон. видимо как то нужно зарегистрировать или права дать.
Старый 27.07.2009, 12:48   #8  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от propeller Посмотреть сообщение
...
но я думаю дело даже не в том как я напишу логон ...
Проблема все-таки видимо в том, как вызывается ax.Logon(...)
Цитата:
Developers Help

IAxapta::Logon Method
HRESULT Logon (
[in, optional] VARIANT user,
[in, optional] VARIANT serverManager,
[in, optional] VARIANT objectServer,
[in, optional] VARIANT configuration,
)

IAxapta3 :: LogonAs Method
HRESULT LogonAs(
[in] VARIANT userName,
[in] VARIANT domain,
[in, optional] VARIANT bcProxyUserName,
[in, optional] VARIANT bcProxyDomain,
[in, optional] VARIANT bcProxyPassword,
[in, optional] VARIANT company,
[in, optional] VARIANT language,
[in, optional] VARIANT objectServer,
[in, optional] VARIANT configuration
)
Дело в том, что в AX 4.0 теперь всегда используется windows-аутентификация.
И по всей видимости, для DAX 4.0 Logon выглядит следующим образом (содержит просто 4 последних параметра фукции LogonAs(...))
Цитата:

HRESULT Logon(
[in, optional] VARIANT company,
[in, optional] VARIANT language,
[in, optional] VARIANT objectServer,
[in, optional] VARIANT configuration
)
Цитата:
Сообщение от Serge Kutin Посмотреть сообщение
axapta1.Logon(company, language, objectServer,
configuration)
Цитата:
Сообщение от Serge Kutin Посмотреть сообщение
axapta1.LogonAs(username, domain, bcProxyCredentials,
company, language, objectServer, configuration)
Так вот первым параметром в ax.Logon(...) - 'Admin' ну ни как не может быть, поэтому и получаете сообщение об ошибке.
Если нужен вход под пользователем 'Admin', то нужно использовать функцию logonAs(...).

P.S. К примеру, на AX_TAP3(образ диска от MS с установленной AX 4.0) установил Delphi 2007, после чего попытался запустить код

Цитата:
...
uses
SysUtils, ComObj, ActiveX;
var ax, ret: Variant;
begin
try
CoInitialize(nil);
ax:=CreateOleObject('AxaptaCOMConnector.Axapta3.1');
ax.Logon('Admin', '', '', '');
...
в итоге получил туже ошибку (что и следовало ожидать), после замены
ax.Logon('Admin', '', '', '')
на ax.Logon() - ошибка исчезла
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: cherv (1).
Старый 05.08.2009, 18:08   #9  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
:( Com Business Connector (Ах 4.0 sp2)
Имеется job в Аксапте 4 к ней же пытаюсь подцепится комконнектором
X++:
static void TestCom_v2(Args _args)
{
    COM       Axapta;
    COM       axaptaCustTable;
    COM       axaptafield;
    ;

    Axapta = new COM("AxaptaCOMConnector.Axapta3.1");
    Axapta.logon();
    axaptaCustTable = Axapta.CreateRecord("CustTable");

    while (axaptaCustTable.found())
    {
        axaptafield = axaptaCustTable.field("AccountNum");
        info(axaptafield.bStr());
        axaptaCustTable.next();
    }

    Axapta.logoff();
    Axapta.finalize();
    Axapta = null;
}
Запуск, при выполнении logon() вылетает ошибка:
Метод "logon" в COM-объекте класса "AxaptaCOMConnector.Axapta3.1" возвратил код ошибки 0x80041011 (<неизвестно>), который означает: The server is unavailable. Microsoft Dynamics will try to connect to other servers in your configuration.

Кто сталкивался с такой ошибкой? перепробовал уже все logonы ничего не помогает. Не понимаю причем тут сервер недоступен.

******* Dron AKA andy: объединил темы. Прошу не дублировать и пользоваться поиском перед созданием новой темы. *******

Последний раз редактировалось Dron AKA andy; 05.08.2009 в 19:17. Причина: объединил темы
Старый 06.08.2009, 13:30   #10  
#bet is offline
#bet
MCTS
Аватар для #bet
MCBMSS
 
30 / 13 (1) ++
Регистрация: 02.06.2004
Адрес: Киев
logon() в свое время пробовал - ничего не получалось...

В итоге logonAs решил все проблемы - прописал полностью все параметры - только после этого получилось... А так тоже постоянно сыпалась ошибка The server is unavailable....
Старый 06.08.2009, 13:52   #11  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от propeller Посмотреть сообщение
при выполнении logon() вылетает ошибка: Метод "logon" в COM-объекте класса "AxaptaCOMConnector.Axapta3.1" возвратил код ошибки 0x80041011 (<неизвестно>), который означает: The server is unavailable. Microsoft Dynamics will try to connect to other servers in your configuration.
Не понимаю причем тут сервер недоступен.
При том, что надо либо указывать в параметре configuration путь к конфигурационному файлу (предпочтительно), либо прописывать конфигурацию в реестре, в HKU для того пользователя, под которым инициируется соединение, - иначе как COM-коннектор узнает, с чем соединяться?
Старый 06.08.2009, 14:20   #12  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
:(
Цитата:
Сообщение от #bet Посмотреть сообщение
logon() в свое время пробовал - ничего не получалось...

В итоге logonAs решил все проблемы - прописал полностью все параметры - только после этого получилось... А так тоже постоянно сыпалась ошибка The server is unavailable....

Попробовал через логонAS все параметры внес.
X++:
    Axapta.logonAs("ax",
                   "office",
                   "fw1",
                   "k1",
                   "en-us",
                   "instance_axsvrt@AXSVRT:2712",
                   "\\\\axapta\\axaptaconfig\\Axapta_4.0\\40New.axc");

Ошибка точно такая же!
(правда не потянет 3 параметр, вроде как прокси сервер, но если не указываешь то выдает ошибку о том что не заполнен параметр.)
Пользователь ax числится админом на сервере axsvrt. то есть с правами все нормально.

P.S. в лицензионных условиях на COM Clients нет лицензий. но насколько я знаю по умолчанию бесплатно идет лицензия на одно соединение COM.

Последний раз редактировалось propeller; 06.08.2009 в 14:41.
Старый 06.08.2009, 16:44   #13  
#bet is offline
#bet
MCTS
Аватар для #bet
MCBMSS
 
30 / 13 (1) ++
Регистрация: 02.06.2004
Адрес: Киев
Цитата:
Сообщение от propeller Посмотреть сообщение
Пользователь ax числится админом на сервере axsvrt. то есть с правами все нормально.

P.S. в лицензионных условиях на COM Clients нет лицензий. но насколько я знаю по умолчанию бесплатно идет лицензия на одно соединение COM.
По поводу лицензий - тут я не смогу помочь, потому как изначально закупали эту лицензию.

А по поводу числится админом - тут надо не админ, а смотреть в настройки Администрирование\Настройка\Контроль доступа\Business Connector Proxy
Тут и прописывается пользователь из AD под которым можно будет ходить...
Старый 06.08.2009, 17:24   #14  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
Вроде разобрался , дело в лицензии было.
Logon() проходит.
Но теперь пытаюсь из 1с зайти через
LogonAs(_userName, _domain, _bcProxyAccountUsername, _bcProxyAccountDomain, _bcProxyAccountPassword, _company, _language, _objectServer, _configuration);

и не получается "Произошла исключительная ситуация (AxaptaCOMConnector.Axapta3.1):"

интересно userName и bcProxyAccountUsername могут совпадать? пишу туда то что забито в Business Connector Proxy , у меня этот пользователь есть и в аксапте.

configuration - ? имя конфигурации или файл. пробовал и так и так. всеравно ошибка.
domain и bcProxyAccountDomain у меня тоже совпадают.

objectServer писал и имя аоса и instancet@AOSort всеравно не помогло.

language - ru, пробовал en-us. никаких изменений.
Ужасно мудренный коннектор))) в 3 Акс все было просто )
Старый 06.08.2009, 18:31   #15  
#bet is offline
#bet
MCTS
Аватар для #bet
MCBMSS
 
30 / 13 (1) ++
Регистрация: 02.06.2004
Адрес: Киев
Цитата:
Сообщение от propeller Посмотреть сообщение
Ужасно мудренный коннектор))) в 3 Акс все было просто )
хм..Что-то такое было...

АОС и комп с которого пытаетесь залогониться коннектором в одном домене?
Старый 07.08.2009, 09:33   #16  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
!
Цитата:
Сообщение от #bet Посмотреть сообщение
АОС и комп с которого пытаетесь залогониться коннектором в одном домене?
Да, в одном.
Старый 10.08.2009, 00:52   #17  
#bet is offline
#bet
MCTS
Аватар для #bet
MCBMSS
 
30 / 13 (1) ++
Регистрация: 02.06.2004
Адрес: Киев
Цитата:
Сообщение от propeller Посмотреть сообщение
Да, в одном.
хм... Трудно сказать...
Знаю только одно что из 1Ски получилось увидеть только при следующих условиях:
  • АОС и компьютер находятся в одном домене
  • Пользователи, под которым логонятся и под которым разрешен коннектор одинаковые
  • Внимательно прописаны все параметры в LogonAs
  • Корректно установлен .Net 2.0

Вот собственно те пункты, которые влияли на работу коннектора - из моих наблюдений!
Теги
ax4.0, business connector, com connector

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
E-mail в Аксапте 3.0 с помощью CDO.Message COM объекта custtable DAX: Программирование 4 12.02.2008 10:31
COM коннектор с большим количеством инстансов Torin DAX: Функционал 0 29.05.2005 14:51
Чтение Excel-ячейки в Аксапте (2.5) через COM AKIS DAX: Программирование 3 25.03.2004 20:18
Axapta COM коннектор Neosy DAX: Администрирование 3 17.09.2002 16:41

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:44.