Mittwoch, April 05, 2006

Fixing online user form bug (Ax 3.0 SP3 on Oracle)

There is a standard error in the online user form that is occurring with Oracle only.
Please check the "Info" class and there the methods:

  • licensedUsers
  • licensedComUsers
  • licensedAOSUsers
  • licensedObjectServers

In all those 4 methods (well, "licensedUsers" is the most important, but please change the others as well), add the following line to the "select sysconfigtemp" statement:

&& sysConfigTemp.ConfigType == ConfigType::AccessCodes;

So, the select statement should look something like this:

select sysConfigTemp
where sysConfigTemp.id == licenseCodeNum(...)
&& sysConfigTemp.ConfigType == ConfigType::AccessCodes;

Why all that? Well, when you start the Online Users form, Axapta will check how many users are in your license. It will then only show online users up to that amount. The methods above are not giving back the correct numbers because they are looking into the wrong record. So, Axapta thinks you are in demo mode and will only display 3 users. Why is it only on Oracle? --> On MSSQL, there is a Clustered Index used on the Sysconfig table so that Axapta chooses the right records by chance !

Example: the method "licensedUsers" looks like this in standard Axapta 3.0 SP3

select sysConfigTemp
where sysConfigTemp.id == licenseCodeNum(SysUsers);

The Id that should be selected is 10.

Problem: there are 2 records with ID 10! --> one with ConfigType = "AccessCodes" (that would be the correct one) and one with ConfigType = "ConfigurationKey"

Keine Kommentare: