Доброго времени суток.
Решил попробовать взаимодействие с Аксаптой через AxaptaCOMConnector. Зарегистрировал COM+ компонент, написал следующий код вызова:
Код:
axapta.Logon( AxComConnTest.user,
AxComConnTest.serverManager,
AxComConnTest.objectServer,
AxComConnTest.configuration);
axapta.Refresh();
int i;
AxaptaCOMConnector.IAxaptaObject axaptaObj;
AxaptaCOMConnector.IAxaptaContainer cont;
axaptaObj = axapta.CreateObject("AxComConnTest", null, null, null, null, null, null);
cont = (IAxaptaContainer)axaptaObj.Call("getStockQtyCont", "Бумага", null, null, null, null, null);
for(i=0; i< cont.Length(); i++)
Console.WriteLine(" {0}: {1}", i+1, cont.Peek(i+1));
axapta.Logoff();
Этот код вызывает статический метод AxComConnTest::getStockQtyCont(ItemId itemId), который запрашивает запасы в наличии по заданной номенклатуре.
Столкнулся со следующей проблемой. Первый запуск проходит нормально, данные возвращаются. При повторном запуске возвращаются нули. Если сделать shut down COM+ компоненты, то все повторяется, первый запуск срабатывает, последующие - нет.
В лог событий попадает следующее сообщение:
"Axapta COM Connector Session 1.
SQL diagnostics: Использовать обнаруженный протокол SQL 's' не рекомендуется в многозадачном режиме Axapta."
Может кто-то сталкивался с подобной проблемой, подскажите ,пожалуйста, в чем дело?