本篇参考:http://salesforce.vidyard.com/watch/bLE3QNRSej2iasw9vvc6Tkide
http://salesforce.vidyard.com/watch/kXk6BaNlWJP27UyFO8vNUgui
前一篇讲了custom community的开启以及简单的使用,custom community当然比较好,可是访问的数据有限,若是须要和CRM数据相关的(Lead/Opportunity等),咱们须要使用partner community license。本篇主要讲解partner community的启用以及数据权限的控制。spa
一. partner community的启用3d
某个公司有某些产品使用salesforce进行销售,其有不少重要客户购买了产品做为了资产,当客户购买产品使用之后以为很好而且想做为合做伙伴共同进行协同销售,此客户即可以同时变成partner account,而且其对应的contact能够做为partner contact去共享数据操做。partner community的启用步骤以下:orm
1. account page layout将Mobile & Lightning Actions中的Enable as Partner以及Disable Partner Account 两个action移到page layout中;blog
2. contact page layout将Mobile & Lightning Actions中的Enable Partner User以及Disable Partner User两个action移到page layout中;开发
这两步作好之后咱们就能够转换一个account变成一个partner account了,demo中使用Edge Communications这个名字的account,咱们申请的dev环境默认就有此客户的数据信息。get
3. 当quick action处显示的按钮为disable Partner Account说明咱们已经成功的enable partner account,Account的表中有字段 IsPartner来标记它是否为一个partner account,默认状况下咱们须要点击Enable Partner Account按钮变成一个partner account。权限控制
4. 当咱们对account转换成partner account之后,即可以对他们的contact转换成partner contact.默认显示的quick action为Enable Partner User,点击此按钮之后会跳转到建立user的页面,咱们只须要license选择 Partner Community,Profile选择Partner Community User便可。固然,若是 Partner Community User这个标准的profile搞定不了,建议你们能够克隆一下这个profile,而后按照项目需求设置相关的权限。下图中展现了Disable Partner User说明已经启用成功,点击Disable按钮则会禁用。产品
这个是咱们建立的user信息,咱们默认建立的时候,理论上role是不用操做和选择的,这里是由于咱们设置了account role的层数超过了1,因此这里能够选择,下面的章节会对数据访问权限等进行讲解。经过图中信息咱们能够看到当前的user上有一个字段为contact,当contact挂值状况下,表明这个user是一个community user。
5. 咱们建立一个template为 Partner Central的community,配置好之后选择Administrator|members将Partner Community User设置到available,而后settings将community 状态设置成active便可。
二. Who see What
当咱们建立好partner community而且已经对account / contact转换成相关的 partner account / partner contact之后,下一步应该考虑的是谁能看到什么,怎么设置默认权限,怎么扩展权限,下面的内容将简单的介绍一下community下的数据权限以及共享的简单管理。
1. community role hierarchy
Salesforce针对数据的权限管理能够大概分4层,Org-Wide Defaults / Role Hierarchy / Sharing Rules / Manual Share。这四层不论是内部仍是外部community针对数据权限控制都适用。
Org-Wide Default是最基本的控制,经过 profile / permission set来设置人员对于某个某些表的CRUD / View All / Modify All的权限。
Role Hierarchy在Salesforce中是一个特别经常使用的功能,你的上级领导业务上能够看到他的全部的下属的数据,这个就是基于role hierarchy默认实现,若是涉及到某些隐私的数据须要只有owner以及管理员能够查看的状况下,须要在sharing setting的grant access via role hierarchy反选。下图中VP Channel Sales做为Role中的最高点,默认状况下,他就能够看到US Channel Sales Director等全部的Role的数据,前提是grant access via role hierarchy勾选的状况下。
Sharing Rules在咱们的项目开发中更是不可或缺的功能,当默认的sharing规则不能搞定全部的场景,某些场景可能级别低的针对某种场景也要协同合做的时候,能够基于Sharing Rule设置自定义的共享规则来设置其余 User / Group / Role的共享权限。好比account的industry 为Energy状况下须要共享给Group 名称为 Energy Core Members的全部成员有Read Only权限,不管members的Role是什么,这时候就要用到了Sharing Rules了。
Sharing Rule有两种实现,基于owner的以及基于条件的,这两种经常使用功能你们不懂得自行补齐基础知识。
Manual Sharing是针对数据owner的权利,数据的owner能够将本身own的数据共享给别人去赋予别人对某条数据的权限。
在数据权限管理上,内部和外部是同样的操做。在以前的custom中,咱们知道没有role的概念,在partner community中,咱们能够进行role的设置从而实现role hierarchy。在salesforce中最多能够设置3层,在community setting中便可配置。固然,salesforce并不建议你们多配置层级,多配置层级会影响performance,因此一层能搞定的业务用一层,一层搞不定的用两层,若是业务有必要的需求状况下再用3层。
设置完之后,编辑之前的community user,即可以选择这个community user的对应的role了,community user选择的role的名字为account 的name + manager / user等命名,设置完之后便实现了community 的role hierarchy。
2. community sharing setting
上面有提到过 sharing setting能够扩展share权限。咱们在sharing setting处能够设置内部和外部的基于某些表的访问权限,salesforce要求的是针对外部的访问权限应该小于等于内部的人的权限,即内部的人员对某个表的数据权限必定要高于外部。若是默认的sharing setting / sharing set以及role hierarchy知足不了状况下,咱们能够对外部的community 用户设置sharing setting来扩充他们的数据访问权限。下面的demo为咱们设置若是Account的Industry 为Energy状况下,咱们须要共享给Group名称为Partner_Managers_and_Channel_Director的全部用户,这个group中咱们放置了partner role为Edge Communities Partner Manager。Sean的用户咱们的角色为这个manager,用来进行权限的共享实验。
咱们先对Sean这个帐号访问某个不是他own的account,demo中使用的是United Oil & Gas Corp. 咱们使用UserRecordAccess来查看当前的用户对这条记录的访问权限发现他如今对这条记录没有read | edit权限,即当前这个community user访问community也看不到这条记录。
咱们以这个contact login as community查看的效果以下,图中他能看到的account就只有他own的或者他的下属的account。
默认的navigation menu可能没有accounts,咱们应该按照下方的步骤,在community builder中操做而后publish。
点击Add New Menu Item放在Sales 一级menu下按照图配置便可。
接下来经过sharing setting对group进行share,从而实现community manager能够看到industry为energy的数据。而且赋予的权限为read only。
从新运行之后能够看到这个community user对这条记录拥有了read 权限,可是没有edit权限。
总结:篇中主要介绍了partner community的启用,以及partner community的数据权限相关的内容,篇中有错误地方欢迎指出,有不懂的欢迎留言。