Dynamics CRM有一种特殊的关联关系叫Associate,一般常见于为用户分配角色、给团队添加用户、团队添加角色、队列添加用户等等。在一些特定场景下我们不可能把所有的操作都通过手动来完成尤其是用户量极大的客户这种手动操作不仅会工作量很大,而且数量一多也容易出错。所以建立一个规则用代码来实现这些操作会比手动操作安全方便的多。

但是这些操作又不能使用传统的给Guid赋值来完成,因为你会发现他们几个实体之间是不存在关联字段的。这个时候就需要使用Associate来进行关联。

上代码(以团队添加用户为例):

//用户赋值3用户
systemuser = target.Id; //查找teamid
teamId = Guid.Parse("9517C5F2-C244-EB11-A827-0017FA038D8E"); adminService.Associate("team", teamId, new Relationship("teammembership_association"), new EntityReferenceCollection() { new EntityReference("systemuser", systemuser) });

我们需要两个参数一个是用户的Guid另一个是团队的Guid通过上面代码就可以建立Associate关系。当然这个关系也是可以去掉的。下面列出了常用的几种Associate操作

1、用户添加角色

adminService.Associate("systemuser",userId,new Relationship("systemuserroles_association"),new EntityReferenceCollection(){new EntityReference("role",roleId)});

2、移除用户角色

adminService.Disassociate("systemuser",userId,new Relationship("systemuserroles_association"),new EntityReferenceCollection(){new EntityReference("role",roleId)});

3、团队添加角色

adminService.Associate("team",teamId,new Relationship("teamroles_association"),new EntityReferenceCollection(){new EntityReference("role",roleId)});

4、移除团队角色

adminService.Disassociate("team",teamId,new Relationship("teamroles_association"),new EntityReferenceCollection(){new EntityReference("role",roleId)});

5、队列添加用户

adminService.Associate("queue",queueId,new Relationship("queuemembership_association"),new EntityReferenceCollection(){new EntityReference("systemuser",userid)});

6、移除队列用户

adminService.Disassociate("queue",queueId,new Relationship("queuemembership_association"),new EntityReferenceCollection(){new EntityReference("systemuser",userid)});

7、团队添加用户

adminService.Associate("team", teamId, new Relationship("teammembership_association"), new EntityReferenceCollection() { new EntityReference("systemuser", systemuser) });

8、移除团队用户

adminService.Disassociate("team", teamId, new Relationship("teammembership_association"), new EntityReferenceCollection() { new EntityReference("systemuser", systemuser) });

Dynamics CRM的Associate功能的更多相关文章

  1. 定制Dynamics CRM标准导出功能:不能导出指定列的值

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复239或者20161203可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  2. Dynamics CRM实体系列之图表

    本节开始讲解Dynamics CRM的图表功能.任何产品基本上都会有数据分析的工具,Dynamics CRM当然也不例外,作为一个专门做销售管理的软件数据分析自然也是对于销售管理者的决策有很大的作用的 ...

  3. DYN-B201 Dynamics CRM 云生产力解决方案与功能简介

    DYN-B201 Dynamics CRM 云生产力解决方案与功能简介 讲师:王健.林松涛Dynamics CRM 云产品正式落地中国,CRM 与 Azure.O365 深度整合无缝集成,带来无与伦比 ...

  4. Dynamics CRM 2013 初体验(3):新增加的功能

    新系统除了修补系统历史漏洞外当然还会添加些比较有意思的新功能,至于这些新功能是否好用那就得看它是否能经过咱们这些使用者的考验了.Dynamics CRM 2013系统将不再支持Dynamics CRM ...

  5. 为Dynamics CRM的Office附件注释定制个无需下载即可在线查看的功能

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复164或者20151021可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 上一篇博客:为Dynamics ...

  6. 为Dynamics CRM注释的图片附件做个预览功能

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复163或者20151017可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! Dynamics CRM中注释可 ...

  7. Microsoft Dynamics CRM 2013 --针对特定实体,取消保存功能(包含自动保存)

    AutoSave 是 Microsoft Dynamics CRM 2013 一个新特性. 但AutoSave的有效范围是[所有实体],不允许针对特定某一实体进行设置. 所以,若想针对特定实体进行设置 ...

  8. Dynamics CRM实体系列之1:N、N:1以及N:N关系

    Dynamics CRM在实施过程中会遇到很多多个实体关联的问题,这样可以实现多个实体的记录通过关联的字段实现数据的综合展示,在Sql Server里面叫做外键,在Dynamics CRM叫做关系.D ...

  9. Dynamics CRM导出数据到Excel

    原创地址:http://www.cnblogs.com/jfzhu/p/4276212.html 转载请注明出处 Pivot Table是微软BI的一个重要工具,所以这里讲一下Dynamics CRM ...

随机推荐

  1. Inspect Network Activity In Chrome DevTools

    Inspect Network Activity In Chrome DevTools https://developers.google.com/web/tools/chrome-devtools/ ...

  2. uniapp 在h5和小程序上使用高德获取用户城市位置

    开发文档 https://lbs.amap.com/api 错误状态 https://lbs.amap.com/api/webservice/guide/tools/info/ 虽然用的高德但是你还需 ...

  3. 安装mysql报错

    原文链接:https://blog.csdn.net/bao19901210/article/details/51917641 二进制安装 1.添加mysql组和mysql用户,用于设置mysql安装 ...

  4. getter和setter以及defineProperty的用法

    getter 和 setter 和 defineProperty getter:将对象属性绑定到查询该属性时将被调用的函数 说人话就是,当你调用一个getter属性时会调用定义好的get函数,这个函数 ...

  5. Dockerfile怎么用

    目录 Docker的Dockerfile 1.常用命令 2.使用Dockerfile创建镜像 Docker的Dockerfile Dockerfile是由一系列命令和参数构成的脚本文件,这些命令应用于 ...

  6. 区分函数防抖&函数节流

    1. 概念区分 函数防抖:触发事件后,在n秒内函数只能执行一次,如果触发事件后在n秒内又触发了事件,则会重新计算函数延执行时间. 简单说: 频繁触发, 但只在特定的时间内才执行一次代码,如果特定时间内 ...

  7. 企业安全_DNS流量监控的技术选型

    方案1 Windows server n ---> packbeat ---> logstash ---> kafka | ┗ ---------> elasticsearch ...

  8. MySql-Day-01

    MySql 能够理解数据库的概念 能够安装MySQL数据库 能够启动,关闭及登录MySQL 能够使用SQL语句操作数据库 能够使用SQL语句操作表结构 能够使用SQL语句进行数据的添加修改和删除的操作 ...

  9. 用go实现常见的数据结构

    目录 1 golang常见数据结构实现 1.1 链表 1.2 可变数组 1.3 栈和队列 1.3.1 原生切片实现栈和队列 1.3.1.1 切片原生栈实现 1.3.1.2 切片原生队列实现 1.3.2 ...

  10. Java 读取Word文本框中的文本/图片/表格

    Word可插入文本框,文本框中可嵌入文本.图片.表格等内容.对文档中的已有文本框,也可以读取其中的内容.本文以Java程序代码来展示如何读取文本框,包括读取文本框中的文本.图片以及表格等. [程序环境 ...