salesforce 零基礎學習(四十)Custom Settings簡單使用


有時候,項目中我們需要設置類似白名單的功能,即某些用戶或者某種Profile的用戶不走一些校驗或者走一些校驗,這時,使用Custom Settings功能可以很好的解決這一需求。

Custom Settings創建類似於Custom Object,但是兩者用法上有一些區別:Custom Setting可以通過條件配置來區分特定的用戶,或者Profile。

Custom Settings可以應用到很多場景,因為可以通過特定用戶和Profile進行配置,所以設置白名單或者相反的功能很容易,除此之外還可以應用到其他場景,根據他的功能自行來使用。

Custom Setting有兩種類型:

1.List Custom Settings:用於創建一組靜態的數據;

2.Hierarchy Custom Settings:通過指定的Profile或者用戶設置指定的數據。

兩種選擇上通常可以選擇第二種,因為第二種用起來更加靈活,如果確定數據是固定的也可以選擇第一種。

 接下來的步驟用來實現配置Custom Setting的用戶不走某種校驗,沒有配置Custom Setting的用戶需要走某種校驗的功能。

一.創建步驟:

1.Setup->Build->Develop->Custom Settings,進入后選擇new

2.填寫基本信息后save

3.點擊new按鈕添加需要的字段

4.點擊上圖的manage,添加紀錄並進行記錄分配

5.分配完成,這里我們看一下下圖描述,當type為List情況,選擇上方的new,當type為hierarchy情況下,選擇下方的new按鈕

二.程序實現調用

Custom Setting調用方式和sObject方式基本相同。需求為當添加一條Goods,當不是白名單的用戶,走Validate校驗時,要求GoodsPrice__c必須大於GoodsCostPrice__c,當然需求是隨便編的。。。

調用可參看:https://help.salesforce.com/HTViewHelpDoc?id=cs_accessing.htm&language=en_US

Goods的Trigger代碼如下:

trigger GoodsTrigger on Goods__c (before insert) {
    if(trigger.isBefore) {
        if(trigger.isInsert) {
            GoodsValidateWhiteList__c currentGoodsValidateWhiteList = GoodsValidateWhiteList__c.getInstance(UserInfo.getUserId());if(currentGoodsValidateWhiteList == null || currentGoodsValidateWhiteList.IsActive__c == false || 
          currentGoodsValidateWhiteList.IsVisible__c == false) { for(Goods__c goods : trigger.new) { if(goods.GoodsPrice__c < goods.GoodsCostPrice__c) { goods.addError('GoodsPrice應該不小於GoodsCostPrice'); } } } } } }

三.運行效果顯示

1.當使用配置的白名單用戶登錄時,當GoodsPrice小於GoodsCostPrice也無所謂,因為不走validate.

2.當使用其他用戶登錄時,由於沒有配置白名單,需要校驗GoodsPrice和GoodsCostPrice.

總結:使用Custom Setting可以更細致的針對Profile或者User進行數據分配,如果有類似需求情況下,此種方式會更加高效實現功能。如果篇中有描述錯誤的地方,歡迎批評指正,如果有不懂得地方歡迎留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM