【问题标题】:AX 2009: Can't find "SalesCreateReleaseOrderLineTmp" TableAX 2009:找不到“SalesCreateReleaseOrderLineTmp”表
【发布时间】:2016-08-26 12:38:11
【问题描述】:
我是 AX 的初学者,我正在尝试为某些用户设置访问权限,并且在特定操作中他们收到错误,即他们无权访问表 SalesCreateReleaseOrderLineTmp。我已在每个类别中手动搜索此表,但没有成功。我在网站上找到了该表的完整描述 -> Order Lines - SalesCreateReleaseOrderLineTmp - ID: 995。我也搜索了ID,但还是没有结果。拥有管理员权限一切正常,但显然不是解决方案。
这张桌子有固定位置吗,谁能告诉我它在哪里? :) 或者有什么方法可以搜索这个表(按 ID 或名称)?
【问题讨论】:
标签:
axapta
x++
dynamics-ax-2009
【解决方案1】:
我猜是
我已在每个类别中手动搜索过此表,但没有
成功
您的意思是您试图在表单中查找用于维护用户组权限的表?
如果是这样,那么这是由于临时表从该树视图中隐藏,因为在构建树视图时从 SysSecurity.expandSecurityKey 调用了类方法 SysDictTable.allowSecuritySetup,并且在此方法中 - 除其他外 - 检查是否该表是临时的。
所以基本上你有 3 个选择:
为您的权限组提供对安全密钥的所需访问权限,以便该组通过它“继承”对表的访问权限 - 当然缺点可能是过于宽松,但优点是可维护性更好:)
删除临时表上的安全密钥,因为这通常是恕我直言的错误决定。应用程序不应限制对临时表的访问(无论如何,这些临时表的作用域是用户会话),而是在填充该表的代码甚至更高级别的进程中强制进行访问检查。
自定义构建安全树视图的代码,使其包含 temp。表。
尝试应用上面对您有用的第一个选项,因为第一个选项不需要任何应用程序修改,而第二个只是一个简单的属性更改,在我看来目前配置错误。最后的选择应该是最后的手段。