如何确定用户是否有权使用业务连接器更新 table

How to determine whether a user has permissions to update a table using business connector

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

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

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

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

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

所以像

这样的电话
hasTableAccess(tablenum(SalesLine), AccessType::Edit)  

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

通过 CallStaticClassMethod 你可以调用它直接传递两个参数或者在 X++ 中用一个新的 class 编写一个简单的瘦包装器,它只接受 table 名称并调用这个方法代表您的正确值 - 后者的好处是不会暴露原始数字 table ID 和枚举值,这些值可能会在未来的版本中发生变化。