有的時候我們可能有這樣的需求,當某個字段為特定的值情況下,便鎖定此條記錄,僅允許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()方法。
作者:zero
部落格位址:http://www.cnblogs.com/zero-zyq/
本文歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接
個人下載下傳了一些相關學習的PDF檔案,如果需要下載下傳請通路百度雲 點選此處通路 密碼:jhuy
如果文章的内容對你有幫助,歡迎點贊~
為友善手機端檢視部落格,現正在将部落格遷移至微信公衆号:Salesforce零基礎學習,歡迎各位關注。