2020-02-26 Control Manual Sharing for User Records

最近在做一个Professional Edition的Org,里面限制重重,倒是学会了好多东西,当然这个还是很基本的东西,可能之前没有太注意过。
这篇文章的起源是由于我们有一个这样的需求:
有两个User,A和B。是一样的Profile,一样的Role。但是B要能够看到A所拥有的数据
很简单的一个需求哈,我们就开始去做实施,第一件事情Share Rule. 然后你就会读到这样一篇文章: 内容简介,当然前提是如果你想做Sharing,你的 organization-wide defaults一定是 Public Read Only or Private.

1. Account, account territory, campaign, case, contact, lead, opportunity, and custom object sharing rules are available for Enterprise, Performance, Unlimited, and Developer Editions.

2. Only account, asset, campaign, and contact sharing rules are available in Professional Edition.
结论:所以Sharing Rule在Professional Edition是不支持的。

那么接下来我们就想到了Manual Sharing,我们读到了这样一篇文章。内容简介, 然后你可以看到这样一句话:Enable or prevent users from sharing their own user records with other users across the organization. 感觉靠谱哈。
具体设置在这里:

1.From Setup, enter Sharing Settings in the Quick Find box, then select Sharing Settings.
2.Click Edit in the Organization-Wide Defaults area.
3.Select the Manual User Record Sharing checkbox to display the Sharing button 
  on user detail pages, 
  which enables users to share their records with others. Or deselect the 
  checkbox to hide the button,
  which prevents users from sharing their user records with others.
4.Click Save.

但是这里会有一个问题是Sharing Button在 Lightning 下是看不到的,用户来回切换classic 和 Lightning 也是不大好的。所以我们想到把手动变成自动的过程。所以我们采取了以下的方式:

  1. 去建一个flow:如下图所示,分为1,2,3部,第一步就是拿到我们要share给的user的记录,如GetUser 图所示。第二步,我们要判断Record Owner和Shared User不是同一人(Is Owner所示)。第三步,我们去创建Share_Object(Create Record所示).


    Flow

    Get User

    Is Owner

    Create Record
  2. 去创建一个Process Builder(如下图所示),有两个地方需要说明一下,3,是作为flow record 信息的input,在flow里面判断parent record id 和parent record owner之用。2,如果你想设置下一步的话,先添加Criteria,之后你就可以把stop 设置为next 下一步了。
    Process Builder

这样就能每次当有record owner属于A的时候,就会自动把record share给B了。

因为要修改数据,所以用到了dataloader.io,数据修改就方便多了。关于dataloader的操作,将在下一篇介绍。敬请期待!!!

你可能感兴趣的:(2020-02-26 Control Manual Sharing for User Records)