2

我们正在使用带有 Dynamics AX 2009 安装的 Business Connector 开发 Intranet 应用程序。

如果用户已经在 AX 中获得这样做的权限,我们希望允许用户更新某些表中的数据。也就是说,如果用户的有效权限允许他们使用 AX Windows 客户端更新数据,那么他们应该能够使用 Intranet 应用程序更新数据。

我们正在使用 LogonAs 方法并传入当前用户的登录名。这一切都有效。但是,对于允许保存数据的用户,我想显示一个更新按钮。对于那些不允许的,我不想显示任何按钮。

有没有办法在不尝试执行更新的情况下查询用户对给定更新的权限?

4

1 回答 1

4

看看静态方法Global::hasTableAccess(tableId, AccessType)

所以像这样的电话

hasTableAccess(tablenum(SalesLine), AccessType::Edit)  

将检查用户是否有足够的权限来编辑该表 - 在这种情况下SalesLine

通过CallStaticClassMethod,您可以直接调用它并传递两个参数,或者在 X++ 中编写一个简单的瘦包装器,其中包含一个新类,该类只接受表名并代表您使用适当的值调用此方法 - 后者的好处是不暴露原始数字表 ID 和枚举值可能会在未来版本中更改。

于 2016-08-18T15:46:50.583 回答