本篇参考:http://salesforce.vidyard.com/watch/bLE3QNRSej2iasw9vvc6Tk

http://salesforce.vidyard.com/watch/kXk6BaNlWJP27UyFO8vNUg

前一篇讲了custom community的开启以及简单的使用,custom community固然比较好,但是访问的数据有限,如果需要和CRM数据相关的(Lead/Opportunity等),我们需要使用partner community license。本篇主要讲解partner community的启用以及数据权限的控制。

一. partner community的启用

某个公司有某些产品使用salesforce进行销售,其有很多重要客户购买了产品作为了资产,当客户购买产品使用以后觉得很好并且想作为合作伙伴共同进行协同销售,此客户便可以同时变成partner account,并且其对应的contact可以作为partner contact去共享数据操作。partner community的启用步骤如下:

1. account page layout将Mobile & Lightning Actions中的Enable as Partner以及Disable Partner Account 两个action移到page layout中;

2. contact page layout将Mobile & Lightning Actions中的Enable Partner User以及Disable Partner User两个action移到page layout中;

这两步做好以后我们就可以转换一个account变成一个partner account了,demo中使用Edge Communications这个名字的account,我们申请的dev环境默认就有此客户的数据信息。

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的数据权限相关的内容,篇中有错误地方欢迎指出,有不懂的欢迎留言。

Community Cloud零基础学习(三)Partner Account的更多相关文章

  1. Salesforce Sales Cloud 零基础学习(三) Lead & Opportunity & Quote

    上一篇讲的是Account 和 Contact,本篇主要描述 Lead & Opportunity & Quote.他们的主要的作用如下: Lead 用来存储潜在客户. Opportu ...

  2. Community Cloud零基础学习(五)Topic(主题)管理

    我们以前讲过 Service Cloud 零基础(三)Knowledge浅谈,我们日常可以看见很多得文章或者帖子,我们可以将其通过data category / group进行管理.但是一个系统中得文 ...

  3. Salesforce Sales Cloud 零基础学习(二) Account 和 Contact

    上一篇我们讲了Sales Cloud 中关于一个公司的产品和定价手册的概念,产品需要卖给企业客户(包括渠道伙伴以及合作伙伴等等)或者是个人客户,那客户信息存在哪里?针对企业客户,通过谁去串联起和企业客 ...

  4. Community Cloud零基础学习(一)启用以及简单配置

    本篇参考: https://trailhead.salesforce.com/en/content/learn/trails/communities https://trailhead.salesfo ...

  5. Community Cloud零基础学习(四)Builder创建自定义的布局

    前几篇讲了Community Cloud权限配置等信息,但是没有太讲过 Community如何进行配置layout,本篇主要描述使用Builder去进行符合需求的Community Layout的构建 ...

  6. Salesforce Sales Cloud 零基础学习(四) Chatter

    Chatter是一个Salesforce实时协作应用程序,它允许你的用户一起工作.互相交谈和共享信息,不管用户角色或位置如何,连接.并激励用户在整个组织内高效工作. Chatter 让用户们在 Opp ...

  7. Service Cloud零基础学习(二)Entitlement & MileStone

    https://trailhead.salesforce.com/content/learn/modules/entitlements 很少会有人不买东西,买的多了也很少没有人没有经历过售后流程.我们 ...

  8. salesforce lightning零基础学习(三) 表达式的!(绑定表达式)与 #(非绑定表达式)

    在salesforce的classic中,我们使用{!expresion}在前台页面展示信息,在lightning中,上一篇我们也提及了,如果展示attribute的值,可以使用{!v.expresi ...

  9. Salesforce Sales Cloud 零基础学习(一) Product 和 Price Book

    以前的博客大部分都是基于force.com以及lightning展开的自定义开发,其实salesforce提供了很多的标准的功能以及平台, Sales Cloud便是作为Salesforce核心的平台 ...

随机推荐

  1. 「CF741D」Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths

    传送门 Luogu 解题思路 考虑把22个字符状压下来,易知合法情况就是状态中之多有一个1,这个可以暴力一点判断23次. 然后后就是 dsu on the tree 了. 细节注意事项 咕咕咕 参考代 ...

  2. 学习SpringBoot零碎记录——配置应用URL名称

    学习SpringBoot配置应用名称,结果发现坑 到网上找 到 https://blog.csdn.net/qq_40087415/article/details/82497668 server: p ...

  3. Pycharm 报错 Environment location directory is not empty 解决

    新电脑clone项目后发现Project Interpreter无法配置, New environment 选择后无法应用, 鼠标悬停在Location 提示 Environment location ...

  4. 让Nutz支持最快的模板引擎Smarty4j

    Smarty4j是一个开源的模板引擎.没错,它就是著名的php模板引擎之Java移植版. 它特点就是将模板文件或者字符串编译成java类直接执行,所以效率比一般的模板解释的方式处理要快.它发展较晚,所 ...

  5. CTE With as 递归调用

    WITH AS的含义   WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会 被整个SQL语句所用到.有的时候,是为了 ...

  6. NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分

    网络层次: OIS网络模型概念:  OSI层次--应用层:  OSI层次--表示层:  OSI--会话层:  OSI--传输层: OSI--网络层: IP地址的概念说明: OSI数据链路层: OSI= ...

  7. gpg加密和解密

    linux:gpg加密和解密 1 创建密钥 2 查看私钥 3 导出公钥 4 导出私钥 5 导入秘钥 5.1 公钥 6 公钥加密 7 私钥解密 创建密钥 gpg --gen-key 你要求输入一下内容, ...

  8. 新手小白如何向GitHub上提交项目

    首先你得注册一个自己的GitHub账号,注册网址:https://github.com/join 创建一个新的项目,填写项目名称,描述 创建完成之后,跳转到下面的页面,下面红框中的网址要记住,在后面上 ...

  9. 123.ModelForm的使用

    ModelForm 在我们的实例中,需要通过models.py中定义相关的模型字段,之后在forms.py中同样需要定义每个字段进行相应的验证,这样的话,我们会需要重复定义,这样的话,就相对比较麻烦, ...

  10. net Core3.1 Swagger加JWT权限

    1.Swagger中开启JWT服务 #region swagger services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new ...