views:

178

answers:

1

== UPDATED :) =========

! SEEMS LIKE ANOTHER 2100 LIMIT ! PLEASE HELP !

Here's some update of what we've found :

I've written a simple job :

server static void testEs(Args _args)
{
    UserInfo t;
    ;
    select t;
}

When I run it as admin, there's no problem. When I remove my admin privilege and run it again, I still got that error : Cannot select a record in User Information (UserInfo). User ID: , .

For simple test, we deleted some users, passing from 2188 to 2074 users. The users deleted has been in the system for a while (a month ago). I redo the same test (running the above job when non-Admin) and now it works.

Any idea anyone ??????

== ORIGINAL MESSAGE ==================

Hi ! (Sorry for my bad english)

We encountered a problem when non-Admin users try to log in Ax in our production environment.

Actually, there is an infolog with these messages (the stack trace is appended to the message) :

== Infolog ========

Cannot select a record in User Information (UserInfo). User ID: , . The SQL database has issued an error.
(S)\Classes\Info\checkStartupCompany_Server - line 8 (C)\Classes\Info\checkStartupCompany - line 4 (C)\Classes\Info\startup - line 49

Here's the sql statement with the bug :

SQL statement: SELECT TOP 1 A.COMPANY,A.ID,101090 FROM USERINFO A WHERE ((((ID IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, [.. and goes on ..] ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ))

== End Infolog ========

Here's the content of Info::checkStartupCompany_Server with the HERE comment where it does bug :

server static void checkStartupCompany_Server(str _curext, userId _curuseid)
{
    UserInfo userInfo;

    if (!hasMenuItemAccess(menuitemdisplaystr(SysDataAreaSelect), MenuItemType::Display) ||
        !hasMenuItemAccess(menuitemdisplaystr(SysDataArea), MenuItemType::Display))
    {
        select firstonly Company from userInfo
            where userInfo.Id == curuserid(); // <== HERE !!!!!!!!!!!!!!

        if (userInfo.Company != curext())
        {
            appl.setDefaultCompany(userInfo.Company, false);
        }
    }
}

=============

In the code of Info::checkStartupCompany_Server, it makes sens that Admin users doesn't have that problem since the condition above is bypassed.

We have now doubts about the company settings.

Any help is appreciated :)

Thanks in advance :)

== END ORIGINAL MESSAGE ==================

A: 

I think you may have Record Level Security enabled on the UserInfo table.

Jan B. Kjeldsen

related questions