Dynamics crm中如何根据角色隐藏高级查找中的实体

问题场景:在某些情况下我们需要限制用户查询实体,但是仍然希望对实体具有读取的权限,但在CRM中并没有单独的选项来隐藏/显示高级查找中的实体。

现      状:目前看到的方法都是将IsValidForAdvanceFind设置为false,但这就限制了所有用户都不能在高级查找中查询,所以在想能不能通过角色去控制高级查找中的实体隐藏和显示。

解决方案:打开高级查找,f12之后选中下拉框,我们可以看到下拉框的id是slctPrimaryEntity,选项值都是实体的唯一名称,所以计划对下拉选项值做处理。

 

 

   首先,我们新建了一个解决方案,其中包含了"Application Ribbons"组件,以便我们可以对高级查找的按钮进行操作。由于我们没法直接对下拉框做直接操作,因此,我们在"DOWNLOAD FETCHXML"按钮旁边增加一个隐藏按钮,在隐藏按钮的Command中处理高级查找下拉框的选项值

 

 

 

在隐藏按钮的Command中,执行如下操作删除计划移除的实体

    var select = $("#slctPrimaryEntity");
    if (select.length > 0) {
        for(var i = 0; i < entities.length; i++)
            $("#slctPrimaryEntity option[value='" + entities[i] + "']").remove();
    }

我们的目标是通过用户角色来过滤实体,所以新建了一个角色和实体的对照表,用于指定需要隐藏的实体,这样通过配置自定义按钮规则,即可按当前用户角色隐藏高级查找中的实体。

示例:配置了account实体,角色设置为管理员,图一的为管理员角色看不到account,图二的为经理角色可以看到account

 

  

                                     图一

    

                                     图二

 

posted @   西伯利亚小菜鸟  阅读(168)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示