2010-05-25 76 views
0

==更新:) =========无法选择用户信息(UserInfo)中的记录。用户名: , 。 Dynamics Axe 2009

!像另一个2100的限制!请帮忙 !

下面是我们发现的一些更新:

我写了一个简单的工作:

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

当我运行它为管理员,没有任何问题。当我删除我的管理员权限并再次运行时,仍然出现此错误: 无法在用户信息(UserInfo)中选择记录。用户名: , 。

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

任何想法的人??????

==原始消息==================

嗨! (对不起,我的英文不好)

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

实际上,存在与这些消息的信息日志(堆栈跟踪被附加到消息):

==信息日志========

无法选择在用户信息记录(用户信息)。用户名: , 。 SQL数据库发出错误。
(S)\类\信息\ checkStartupCompany_Server - 8号线 (C)\类\信息\ checkStartupCompany - 线4 (C)\类\信息\启动 - 线49

下面是用SQL语句错误:

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

==结束信息日志========

这里的信息:: checkStartupCompany_Server与这里的内容发表评论,其中它的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); 
     } 
    } 
} 

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

在Info :: checkStartupCompany_Server的代码中,它使得管理员用户不会遇到这个问题,因为上面的条件被绕过了。

我们现在怀疑公司设置。

任何帮助表示赞赏:)提前:)

== END原始消息==================

谢谢

回答

1

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

2

在酸性AOS上增加过程调用(RPC)。 其他删除最近导入的一些用户。 在我的情况下,这工作。