Добрый день,
AX2009 интегрирую с внешней системой.
Внешняя система предоставляет com-объект для манипуляций с ней,
в AX2009 запилил класс для запуска в пакетном режиме, который будет периодически обменивается данными с внешней системой посредством использования экземпляра данного com-объекта.
Для начала сделал по-старинке:
класс клиентский, пакетный сервер запускается в отдельной клиентской сессии.
Все работает.
Можно переводить и на серверный вариант, чтобы не париться с клиентской сессией.
Поставил RunOn = Server.
Метод new подпилил так:
X++:
void new()
{
InteropPermission p;
;
super();
p = new InteropPermission(InteropKind::ComInterop);
p.assert();
storageConnector = new COM("Cleverence.Warehouse.StorageConnector");
// storageConnector = new COM("CDO.Message"); // для проверки создаются ли другие объекты
CodeAccessPermission::revertAssert();
}
Пробую. Получаю:
Цитата:
COM-объект класса "Cleverence.Warehouse.StorageConnector" не удалось создать. Убедитесь, что объект был должным образом зарегистрирован на компьютере "AOS-DEV-01V".
Убедился.
На указанном AOS установлен также и клиент. Открываю его.
Ставлю у класса RunOn = Client - запускается.
Ставлю у класса RunOn = Server - указанная выше ошибка.
Под доменным админом то же самое.
Другие объекты типа CDO.Message или ADODB.Recordset создаются нормально при любом значении RunOn.
Если кто в состоянии, подскажите, пожалуйста, в каком направлении копать.