Показать сообщение отдельно
Старый 27.07.2009, 12:48   #8  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 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).