salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

时间:2022-07-16 20:03:08

有的时候我们可能有这样的需求,当某个字段为特定的值情况下,便锁定此条记录,仅允许Profile为System Admin的用户修改或者解锁,其他的用户只能查看此条记录,不能修改此条记录,这种情况下我们就的需要锁定记录(Lock Record)。

锁定记录(Lock Record)可以通过Process Builder以及Approval Processes实现功能。本人最开始用的自己申请的免费帐户使用Custom Object来进行测试,发现的尴尬的事情就是Profile为System Admin的账户可以看到相关创建的Tab,并且可以锁定记录,但是其他非System Admin的账户没法看到相关的tab,更没法查看被锁定的记录了,所以为了测试其是否可以锁定记录,使用系统表Opportunities来进行测试。步骤如下:

1.Setup->Build->Create->Workflow&Approvals->Process Builder或者直接在搜索栏搜索Process Builder,点击进入后点击右上角的new

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

2.输入相关信息后点击OK

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

3.选择需要操作的Object,按照自己需要设置执行状态

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

4.设置条件,条件可以是标准的条件抑或使用formula方式设置判断条件,在设置条件时,可以设置多个条件,按照条件的逻辑可以选择与,或,或者其他自定义逻辑

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

5.设置action,action type有如下很多种,在这里可以选择Apex或者Submit for Approval,因为apex代码可以通过Approval类调用lock()方法,在这里选择通过配置Approval方式而不是写代码方式进行。

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

6.输入具体信息后点击save,然后点击右上角的Activate,然后点击Back To SetUp,回到Set Up页面。

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

7.SetUp->Build->Create->Workflow&Approvals 点击进入,在Manage Approval Processes For:选择Opportunity,在下方显示Use Standard Setup Wizard

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

8.输入Approval的具体信息以后,点击Next

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

9.选择执行的条件,如果对Approval Process不熟悉的移步Approval Process学习

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

10.指定Approval 字段和记录访问的配置,这里做默认的配置即可,然后点击Next

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

11.选择Approval需要的通知的email模板,当前不需要通知

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

12.选择在Approval Page Layout展现的字段,因为字段不需要展示,所以直接默认,Next

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

13指定Submitter,按照自身需求,这里默认。点击Save

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

14.save以后选择创建approval step,点击Go

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

15.输入基本信息后点击Next

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

16.选择Enter step方式,然后选择formula方式,在formula中输入false,点击Next

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

17选择分配的审批者,按需选择,这里选择默认的,点击Save

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

18.选择No,I'll do this later

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

19.将Approval设置成Activate,置成以后效果如下所示

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

20.效果演示,通过当前用户修改一条Opportunities记录,将Stage项修改成Closed Won,则Save以后此条记录便Lock。管理员可以拥有UnLock Record的权限

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

21.用普通用户登录,普通用户的Profile选择可以查看Opportunities这个Tab权限的Profile

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

22.登陆后此条记录只能只读,如果修改便报错误。

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

总结:通过Process Builder以及Approval Process配置方式可以通过点击方式便实现特定情况下锁定记录功能,相对方便,此种方式缺点为无法通过当前登录用户的Permission Set来设置,如果项目通过Permission Set来设置权限,则无法通过上述的方式设置,可以考虑在第5步的时候选择Apex来完成此种功能。Apex代码可以很轻松获取当前用户的Permission Set以及通过Approval类可以很轻松的调用Lock()方法。