Показать сообщение отдельно
Старый 22.03.2012, 09:42   #4  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Посмотрел метод LicencedUsers() класса Info в Ax 2009 и увидел, что там данный недостаток уже исправлен:
X++:
static server int licensedUsers()
{
    Dictionary  dictionary = new Dictionary();
    SysConfig   sysConfigTemp;

    select sysConfigTemp
        where (sysConfigTemp.Id == licensecodenum(SysUsers)) && (sysConfigTemp.ConfigType == ConfigType::AccessCodes);

    return dictionary.testCode(sysConfigTemp.Id,
                               sysConfigTemp.Value,
                               xSysConfig::find(ConfigType::LicenseName,0).Value,
                               xSysConfig::find(ConfigType::SerialNo,0).Value,
                               xSysConfig::find(ConfigType::LicenseName,1).Value);
}
Таким образом, для того, чтобы корректно отображались данные на форме Активные пользователи, а именно верно считалось число активных сессий в Axapta 3, необходимо добавить критерий проверки типа конфигурации
X++:
sysConfigTemp.ConfigType == ConfigType::AccessCodes
в методы:
1)Info::licensedUsers()
2)Info::licensedComUsers()
3)Info::licensedAosUsers()

Подсчет происходит так же в классе Info:
X++:
static server int licensedUsersTotal()
{
    return Info::licensedUsers()+Info::licensedComUsers()+Info::licensedAosUsers();
}
Плюс к этому, следует добавить данный критерий в метод licensedObjectServers() класса Info.
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 22.03.2012 в 10:02.