此貼是轉載,並不是原創,原創地址 http://www.javashuo.com/article/p-dyvtuybr-bg.htmlhtml
有的時候咱們可能有這樣的需求,當某個字段爲特定的值狀況下,便鎖定此條記錄,僅容許Profile(簡檔)爲System Admin(系統管理員)的用戶修改或者解鎖,其餘的用戶只能查看此條記錄,不能修改此條記錄,這種狀況下咱們就的須要鎖定記錄(Lock Record)。app
鎖定記錄(Lock Record)能夠經過Process Builder(進程生成器)以及Approval Processes(批准過程)實現功能。本人最開始用的本身申請的免費賬戶使用Custom Object(自定義對象)來進行測試,發現的尷尬的事情就是Profile(簡檔)爲System Admin(系統管理員)的帳戶能夠看到相關建立的Tab(標籤),而且能夠鎖定記錄,可是其餘非System Admin(系統管理員)的帳戶無法看到相關的tab(標籤),更無法查看被鎖定的記錄了,因此爲了測試其是否能夠鎖定記錄,使用系統表Opportunity來進行測試。步驟以下:佈局
1.Setup(設置)->Create(建立)->Workflow&Approvals(工做流和批准)->Process Builder(進程生成器)或者直接在搜索欄搜索Process Builder(進程生成器),點擊進入後點擊右上角的new(新建)學習
2.輸入相關信息後點擊OK測試
3.選擇須要操做的Object(對象),按照本身須要設置執行狀態ui
4.設置條件,條件能夠是標準的條件抑或使用formula(公式)方式設置判斷條件,在設置條件時,能夠設置多個條件,按照條件的邏輯能夠選擇與,或,或者其餘自定義邏輯this
5.設置action(操做),action type(操做類型)有以下不少種,在這裏能夠選擇Apex或者Submit for Approval(提交待審批),由於apex代碼能夠經過Approval(審批)類調用lock()鎖方法,在這裏選擇經過配置Approval(審批)方式而不是寫代碼方式進行。spa
6.輸入具體信息後點擊save(保存),而後點擊右上角的Activate(啓用),而後點擊Back To SetUp(返回設置),回到SetUp(設置)頁面。3d
7.SetUp(設置)->Create(建立)->Workflow&Approvals(工做流和批准) 點擊進入,在Manage Approval Processes For(批准過程):選擇Opportunity,在下方顯示Use Standard Setup Wizard(使用標準設置嚮導)orm
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.效果演示,經過當前用戶修改一條Opportunity記錄,將Stage(階段)項修改爲Closed Won,則Save(保存)之後此條記錄便Lock(鎖上)。管理員能夠擁有UnLock Record(解鎖記錄)的權限
21.用普通用戶登陸,普通用戶的Profile(簡檔)選擇能夠查看Opportunity這個Tab(標籤)權限的Profile(簡檔)
22.登錄後此條記錄只能只讀,若是修改便報錯誤。
總結:經過Process Builder(進程生成器)以及Approval Process(批准過程)配置方式能夠經過點擊方式便實現特定狀況下鎖定記錄功能,相對方便,此種方式缺點爲沒法經過當前登陸用戶的Permission Set(權限設置)來設置,若是項目經過Permission Set(權限設置)來設置權限,則沒法經過上述的方式設置,能夠考慮在第5步的時候選擇Apex來完成此種功能。Apex代碼能夠很輕鬆獲取當前用戶的Permission Set(權限設置)以及經過Approval(批准)類能夠很輕鬆的調用Lock()鎖方法。