有的時候咱們可能有這樣的需求,當某個字段爲特定的值狀況下,便鎖定此條記錄,僅容許Profile爲System Admin的用戶修改或者解鎖,其餘的用戶只能查看此條記錄,不能修改此條記錄,這種狀況下咱們就的須要鎖定記錄(Lock Record)。app
鎖定記錄(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.輸入相關信息後點擊OKui
3.選擇須要操做的Object,按照本身須要設置執行狀態this
4.設置條件,條件能夠是標準的條件抑或使用formula方式設置判斷條件,在設置條件時,能夠設置多個條件,按照條件的邏輯能夠選擇與,或,或者其餘自定義邏輯spa
5.設置action,action type有以下不少種,在這裏能夠選擇Apex或者Submit for Approval,由於apex代碼能夠經過Approval類調用lock()方法,在這裏選擇經過配置Approval方式而不是寫代碼方式進行。3d
6.輸入具體信息後點擊save,而後點擊右上角的Activate,而後點擊Back To SetUp,回到Set Up頁面。orm
7.SetUp->Build->Create->Workflow&Approvals 點擊進入,在Manage Approval Processes For:選擇Opportunity,在下方顯示Use Standard Setup Wizardblog
8.輸入Approval的具體信息之後,點擊Nextit
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()方法。