Показать сообщение отдельно
Старый 04.07.2010, 00:06   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Thumbs down DAX 2009 некорректный SPID в форме активных пользователей
Коллеги, кто-нибудь делал в Ax 2009 вывод оракловых SID, SERIAL# в форме активных пользователей ?

При переходе на ax2009 столкнулись с проблемой, что код который успешно работал в трешке не работает в 2009-й.

Для получения SID, SERIAL# использовали такой запрос
'SELECT SERIAL#,SID FROM V$SESSION WHERE AUDSID IN (\''+_spid+'\')'

В итоге имеем : в одной БД живут 2 схемы, для 3-ки и для 2009. Для трешки запрос отрабатывает корректно, для 2009-й - нет.

Более детальное рассмотрение выявило, что в 3-ке параметр _spid, который соответствует оракловому AUDSID состоит из 9 цифр. А в 2009-й - только из 8.

Похоже где то внутри ядра в Аксапте, при вызове new xSession().databaseSpid() происходит усечение строки до 8 символов.

Как можно обойти это ограничение ? Может есть возможность заставить оракл генерить номера audsid длиной не более 8 символов ? Или пофиксить аксапту ...
За это сообщение автора поблагодарили: gl00mie (10).