|
29.11.2007, 14:03 | #1 |
Участник
|
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 |
Участник
|
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 |
Участник
|
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 |
Участник
|
да всё оказалось гораздо проще, сработала вот какая конструкция
... 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 |
Участник
|
Регистрировать AxCom.dll ?
Цитата:
Такая же ошибка тоже в 4-ке. уже все логоны перепробовал. и все одно и тоже, запускал и на сервере и на клиенте. Может как то нужно зарегистрировать axcom.dll ? пробовал только вручную через regsvr32. непомгло |
|
24.07.2009, 12:08 | #6 |
Участник
|
Поищите на msdn примеры на C#, там все толково сделано.
__________________
http://www.axdevposts.blogspot.com Пришел, уведел.... отойди, дай другому увидеть! |
|
24.07.2009, 14:14 | #7 |
Участник
|
искал. там только на .Net коннектор.
но я думаю дело даже не в том как я напишу логон. видимо как то нужно зарегистрировать или права дать. |
|
27.07.2009, 12:48 | #8 |
Участник
|
Проблема все-таки видимо в том, как вызывается 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 ) И по всей видимости, для DAX 4.0 Logon выглядит следующим образом (содержит просто 4 последних параметра фукции LogonAs(...)) Цитата:
HRESULT Logon( [in, optional] VARIANT company, [in, optional] VARIANT language, [in, optional] VARIANT objectServer, [in, optional] VARIANT configuration ) Цитата:
Если нужен вход под пользователем '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 |
Участник
|
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" в 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 |
MCTS
|
logon() в свое время пробовал - ничего не получалось...
В итоге logonAs решил все проблемы - прописал полностью все параметры - только после этого получилось... А так тоже постоянно сыпалась ошибка The server is unavailable.... |
|
06.08.2009, 14:20 | #11 |
Участник
|
Цитата:
Попробовал через логон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 | #12 |
MCTS
|
Цитата:
А по поводу числится админом - тут надо не админ, а смотреть в настройки Администрирование\Настройка\Контроль доступа\Business Connector Proxy Тут и прописывается пользователь из AD под которым можно будет ходить... |
|
06.08.2009, 17:24 | #13 |
Участник
|
Вроде разобрался , дело в лицензии было.
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, 13:52 | #14 |
Участник
|
Цитата:
Сообщение от propeller
при выполнении logon() вылетает ошибка: Метод "logon" в COM-объекте класса "AxaptaCOMConnector.Axapta3.1" возвратил код ошибки 0x80041011 (<неизвестно>), который означает: The server is unavailable. Microsoft Dynamics will try to connect to other servers in your configuration.
Не понимаю причем тут сервер недоступен. |
|