如何在Power Apps命令编辑器中基于安全角色控制Dynamics 365 Sales按钮可见性?
在Power Apps命令编辑器中验证用户安全角色的解决方案
可以在命令栏按钮的可见性公式中验证用户安全角色,不过Power Fx的命令栏环境没有直接提供UserRoles这类快捷函数,需要通过查询系统实体来实现,具体步骤如下:
实现步骤
- 确保你的模型驱动应用已添加
Roles(安全角色实体)和systemuserroles(用户-角色关联实体)作为数据源。 - 修改你的可见性公式,添加用户角色检查逻辑:
!IsBlank(Self.Selected.Item.'FieldX') && !IsBlank(Self.Selected.Item.'FieldY') && !Self.Selected.Item.AlreadyDone && // 检查当前用户是否拥有名为"X"的安全角色 !IsBlank( LookUp( systemuserroles, systemuserid = User().Id && roleid = LookUp(Roles, Name = "X").Id ) )
优化建议
如果担心安全角色名称可能被修改,建议使用角色的唯一ID来查询,这样更稳定:
!IsBlank(Self.Selected.Item.'FieldX') && !IsBlank(Self.Selected.Item.'FieldY') && !Self.Selected.Item.AlreadyDone && !IsBlank( LookUp( systemuserroles, systemuserid = User().Id && roleid = GUID("替换为你的安全角色ID") ) )
获取安全角色ID的方法
在Dynamics 365 Sales中,进入高级设置>安全>安全角色,打开目标角色后,浏览器地址栏中的roleid参数值就是该角色的唯一ID。
内容的提问来源于stack exchange,提问作者Frédéric Jacques
相关产品推荐
相关产品推荐

