== 更新:) =========
!似乎又是一个 2100 的限制!请帮忙 !
以下是我们发现的一些更新:
我写了一个简单的工作:
server static void testEs(Args _args)
{
UserInfo t;
;
select t;
}
当我以管理员身份运行它时,没有问题。当我删除我的管理员权限并再次运行它时,我仍然收到该错误:无法在用户信息 (UserInfo) 中选择记录。用户身份: , 。
为了简单的测试,我们删除了一些用户,从 2188 到 2074 个用户。删除的用户已在系统中存在一段时间(一个月前)。我重做相同的测试(在非管理员时运行上述作业),现在它可以工作了。
任何想法任何人??????
== 原始信息 ====================
你好 !(对不起,我的英语不好)
当非管理员用户尝试在我们的生产环境中登录 Ax 时,我们遇到了问题。
实际上,有一个包含这些消息的信息日志(堆栈跟踪附加到消息中):
== 信息日志 ========
无法在用户信息 (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 的代码中,由于绕过了上述条件,因此管理员用户没有这个问题是有意义的。
我们现在对公司设置有疑问。
任何帮助表示赞赏:)
提前致谢 :)
== 结束原始消息 ===================