salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)
有的时候我们可能有这样的需求,当某个字段为特定的值情况下,便锁定此条记录,仅允许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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


总结:通过Process Builder以及Approval Process配置方式可以通过点击方式便实现特定情况下锁定记录功能,相对方便,此种方式缺点为无法通过当前登录用户的Permission Set来设置,如果项目通过Permission Set来设置权限,则无法通过上述的方式设置,可以考虑在第5步的时候选择Apex来完成此种功能。Apex代码可以很轻松获取当前用户的Permission Set以及通过Approval类可以很轻松的调用Lock()方法。
salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)的更多相关文章
- salesforce 零基础学习(十九)Permission sets 讲解及设置
Permission sets以及Profile是常见的设置访问权限的方式. Profile规则为'who see what'.通过Profile可以将一类的用户设置相同的访问权限.对于有着相同Pro ...
- salesforce 零基础学习(十八)WorkFlow介绍及用法
说起workflow大家肯定都不陌生,这里简单介绍一下salesforce中什么情况下使用workflow. 当你分配许多任务,定期发送电子邮件,记录修改时,可以通过自动配置workflow来完成以上 ...
- salesforce 零基础学习(十六)Validation Rules & Date/time
上一篇介绍的内容为Formula,其中的Date/time部分未指出,此篇主要介绍Date/time部分以及Validation rules. 本篇参考PDF: Date/time:https://r ...
- salesforce零基础学习(九十五)lightning out
随着salesforce对lightning的推进,越来越多的项目基于lightning开发,导致很多小伙伴可能都并不了解classic或者认为不需要用到classic直接就开始了lightning的 ...
- salesforce零基础学习(一百一十)list button实现的一些有趣事情
本篇参考: salesforce零基础学习(九十五)lightning out https://developer.salesforce.com/docs/component-library/docu ...
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- salesforce 零基础学习(三十六)通过Process Builder以及Apex代码实现锁定记录( Lock Record)
上一篇内容是通过Process Builder和Approval Processes实现锁定记录的功能,有的时候,往往锁定一条记录需要很多的限制条件,如果通过Approval Processes的条件 ...
- salesforce零基础学习(八十)使用autoComplete 输入内容自动联想结果以及去重实现
项目中,我们有时候会需要实现自动联想功能,比如我们想输入用户或者联系人名称,去联想出系统中有的相关的用户和联系人,当点击以后获取相关的邮箱或者其他信息等等.这种情况下可以使用jquery ui中的au ...
- salesforce零基础学习(一百零五)Change Data Capture
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.232.0.api_streaming.meta/api_streaming/using ...
随机推荐
- lua 自己编译源文件
,下载源代码 http://www.lua.org/download.html 直接下载source ,vs2010新建win32项目 应用程序设置中设成静态库 ,将.c(除去lua.c)和.h文件加 ...
- easymock+junit+spring学习·
Easymock学习 Author:luojie 1. Easymock简介 EasyMock 是一套通过简单的方法对于指定的 ...
- bootstrap中table的colspan不起作用
bootstrap中table的colspan不起作用,即在不指定宽度的条件下,各个td宽度不符合colspan指定的宽度. 添加table0layout:fixed后显示正常. table{ tab ...
- 使用CSS设置行间距,字间距.
字间距1.text-indent设置抬头距离css缩进即对,对应div设置css样式text-indent : 20px; 缩进了20px 2.letter-spacing来设置字与字间距_字符间距离 ...
- 解决Get请求的长度限制
错误提示: HTTP Error 404.15 - Not Found The request filtering module is configured to deny a request whe ...
- Linux下Chrome浏览器不支持WebGL的解决方式。
今天使用Chrome浏览器,总是报这样一个错误: Uncaught TypeError: Cannot read property 'canvas' of null. 细看之下是无法获取WebGL上下 ...
- WInform关闭程序的几种方法以及区别。
1.this.Close(); 关闭窗体,如果关闭的是主窗体 程序结束.2.Application.Exit(); 退出所有的窗体但是如果有托管线程的话无法完全退出3.Application.Exit ...
- [Leetcode]Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space. 这题貌似解法挺多,直接用简单的把数倒置,没有考虑数 ...
- Selenium中的几种等待方式,需特别注意implicitlyWait的用法
摘:http://blog.csdn.net/pf20050904/article/details/20052485 最近在项目过程中使用selenium 判断元素是否存在的时候 遇到一个很坑爹的问题 ...
- 模态窗口用webdriver定位不到,可用java+sikuli实现
一.安装sikuli(参见:http://lijunwei1228ok.blog.163.com/blog/static/97383797201311279595821/) 1.官网:http://w ...