Dynamics CRM 根据用户权限不同来进行按钮的显示和隐藏的功能

注:本人刚接触Dynamics CRM不久,也是个小白,写的内容算是自己做的笔记,也给新人一些参考,写的不对或者不好的地方请指出来,大家一起学习, 有问题可在下方评论,大神勿喷。

上一篇文章Dynamics CRM 365 Button自定义之RibbonWorkbench2016介绍了通过RibbonWorkbench 自定义Button,接下来我们将根据用户角色来显示和隐藏当前Button。
首先来看一张最后的效果图,当前具有系统管理员和销售员角色权限的情况,可以看到这里显示了百度MAP这个按钮。
这里写图片描述

下面将进行我们的操作,首先还是进入到我们的RibbonWorkbench解决方案里面,[注:选择Solution时,当前Solution必须包含需要操作的Entity] 第一步选择你要操作的Entity ,然后选择要操作的Button,这里我们需要对Button进行启用和禁用,我们选择Enable Rule 点击加号。

这里写图片描述

添加一个步骤,选择Custom Rule 自定义规则。

这里写图片描述

这里我们让他默认为false,FunctionName为你js定方法名,Library为你上传在Solution的js文件

这里写图片描述
下面是js代码

var role=false;
function ShowRoleForBaidu()
{

  var RoleId=Xrm.Page.context.getUserRoles();//获取当前的权限id
  //alert(RoleId);
  //有时候我们获取的id加了{}了的,这时候我们需要将它转换一下
  // var newRoleId=RoleId.replace(/^{/, "").replace(/}$/, "");

  for (var i=0;i<RoleId.length;i++) {
  //之所以用for是因为当前的用户可能不止一个角色,我们需要将他遍历出来。
    var req = new XMLHttpRequest();
    req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.0/roles(" + RoleId[i] + ")?$select=name", false);//true是异步,false是同步
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
    req.onreadystatechange = function () {

      if (this.readyState === 4) {
        req.onreadystatechange = null;
        if (this.status === 200) {//200执行成功且有返回值
          var result = JSON.parse(this.response);
          var name = result["name"];
          if (name == "销售员") {
            role = true;
          }

        } else {
          var error = JSON.parse(this.response).error;
          Xrm.Utility.alertDialog(this.statusText + error.message+"错误");
        }
      }
    };
    req.send();
  }
  return role;
}

接下来我们打开当前Button command指令,将我们创建的Enable Rule 添加进去

这里写图片描述

添加完成后

这里写图片描述

设置>安全性>用户 选中我们当前的用户 ,点击管理角色,将我们的售货员的角色的勾去掉,点击确定。
【友情提示:在没有备用具有系统管理员角色的用户时,千万不要将系系统管理员的角色删掉,不然。。。 嘿嘿 ,你自己去想想吧,别问我为什么要提示你们,宝宝想哭,,,】

这里写图片描述

大功告成,这里的Button已经不显示了,当用户具有售货员角色的时候就会重新显示了。

这里写图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Dynamics CRM是Microsoft的一款客户关系管理软件,旨在帮助企业有效管理和提升客户关系。下面是一些入门的要点: 1. 功能概述:Dynamics CRM提供了一系列功能,包括销售管理、市场营销、客户服务和客户分析等。通过这些功能,企业可以更好地跟踪潜在客户、管理销售流程、提供卓越的客户服务以及分析客户数据,从而增强客户关系。 2. 数据中心:Dynamics CRM数据中心是存储和管理企业客户数据的地方。通过数据中心,用户可以创建、编辑和查看客户信息,包括联系人、交易记录、合同等。数据中心还提供了一套强大的搜索和过滤功能,以便快速查找所需的信息。 3. 个人定制:Dynamics CRM允许用户根据自己的需求进行个性化定制。用户可以自定义工作区、报表和仪表盘,以便更好地满足其工作流程和业务需求。个性化的设置可以提高工作效率,并使用户更加舒适地使用系统。 4. 自动化工作流程:Dynamics CRM的一个重要功能是自动化工作流程。用户可以设置流程,以便在特定条件下触发自动化操作,如发送电子邮件、创建任务或生成报告。这些自动化工作流程可以帮助企业提高工作效率,并减少人为错误。 5. 数据分析和报告:通过Dynamics CRM的数据分析和报告功能用户可以深入分析客户数据并生成相关报告。这些报告可以提供有关销售绩效、客户满意度和市场趋势等方面的关键指标,帮助企业做出明智的决策并优化业务流程。 总之,Dynamics CRM是一款强大的客户关系管理软件,可以帮助企业有效管理客户关系并提升业务绩效。通过了解其功能和使用方法,用户可以更好地利用该软件,并在实际工作中取得更好的成果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值