Dynamics 365 CRM 共享记录(简易理解)
在开发途中,测试batch文件运行时,发现即使运行了共享记录程序,依旧没有效果。查阅了一些网上已有的内容,对于记录共享有了一定了解,在这里记录一下。
概念
在一个组织中会有许多权限不同的用户,有人可以看所有人的数据,有人则只可以看自己权限下的数据。如下图所示,由上到下的箭头表示创建关系,由下到上的箭头表示读取权限。这里经理虽然只创建了数据B,但是他可以查看所有的数据,而职员AB只能查看由自己创建的数据。当职员A想要查看数据B时,就需要找经理,让经理共享数据。
共享后,职员A就可以查看数据B了。但是如果去找职员B,那就不行了,因为职员B本身就没有查看数据B的权限。这就是数据共享的概念。共享后如下图所示。
准备工作
当在环境中共享成功后,被共享者却依旧无法查看此条记录;或者共享之前,被共享这就可以查看此条记录,有可能就是被共享者与共享者两者的角色没有设置好。
这时,要设置两者的角色,保证完成,被共享者拥有对即将被共享记录实体的用户权限。这句话读起来很绕,但看图就很好理解了。
如图所示,我想要共享这条客户信息给我的副手,让他查看一下。我作为这条信息的所有者,并且作为一个具备最高权限的人,我肯定是可以将这条信息共享出去的。但是副手的权限就需要仔细考虑一下了。如果权限过低,连画面都进不去,那肯定无法获取共享后的信息,如果权限过高,那我是否共享也不会影响其对于此条记录的查看权限。因此我对于副手的权限设置为,如红框所示,这样保证了,能看见自己负责的记录,但看不见别人负责的记录,而我作为共享给别人的共享者,需要拥有能够共享此条记录的权限,也就是最后一列,最起码要点四分之一。
这样配置结束后,在他的界面就是下面的这样
在我的界面就是
共享记录(画面)
找到要共享的内容,点击上方的功能栏中的共享,就可以完成对数据的共享,选择下图右上角的共享进行共享,然后添加你需要共享给的用户,并且设置一定的权限,完成共享。
共享后,我的副手能看到的数据
共享成功
共享记录(代码)
共享记录也可以使用代码编写来实现,使用官方给的sdk进行实现,使用以下三个链接中的方法,完成权限赋予,权限删除,权限更改。
注意一下,如下图所示例子中给的AccessRight为官方所给枚举类,包含了一系列权限值,在权限赋予时,使用位运算进行赋值。枚举类