无法在用户信息(UserInfo)中选择记录。用户身份: , 。 Dynamics Axe 2009

时间:2010-05-25 21:40:25

标签: axapta dynamics-ax-2009 userinfo

==更新:) =========

!看起来像另一个2100限制!请帮助!

以下是我们发现的更新内容:

我写了一份简单的工作:

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

当我以管理员身份运行时,没有问题。当我删除我的管理员权限并再次运行它时,我仍然遇到了这个错误: 无法在用户信息(UserInfo)中选择记录。用户名:,。

对于简单测试,我们删除了一些用户,从2188到2074用户。删除的用户已经在系统中待了一段时间(一个月前)。我重做相同的测试(在非管理员时运行上述工作),现在它可以工作。

任何人都知道??????

==原始讯息==================

你好! (抱歉我的英语不好)

当非管理员用户尝试在我们的生产环境中登录Ax时,我们遇到了问题。

实际上,有一个带有这些消息的信息(堆栈跟踪附加到消息中):

== Infolog ========

无法在用户信息(UserInfo)中选择记录。用户身份: , 。 SQL数据库发出错误 (S)\ Classes \ Info \ checkStartupCompany_Server - 第8行 (C)\ Classes \ Info \ checkStartupCompany - 第4行 (C)\ Classes \ Info \ startup - 第49行

这是带有错误的sql语句:

SQL语句:SELECT TOP 1 A.COMPANY,A.ID,101090 FROM USERINFO A WHERE((((ID IN(?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?, [..继续..] ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)))

==结束语言========

以下是Info :: checkStartupCompany_Server的内容以及HERE评论中的错误:

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);
        }
    }
}

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

在Info :: checkStartupCompany_Server的代码中,由于绕过上述条件,因此管理员用户不会遇到此问题。

我们现在对公司设置有疑问。

感谢任何帮助:)

提前致谢:)

==结束原始讯息==================

2 个答案:

答案 0 :(得分:2)

在您的酸性AOS上增加过程调用(RPC)。 else删除最近导入的一些用户。 在我的情况下,这是有效的。

答案 1 :(得分:1)

我认为你可能在UserInfo表上启用了Record Level Security。