Salesforce 小知識 - 必需欄位
將欄位定義為「必需」
當我們為對象設置欄位的屬性時,我們需要讓某些欄位在建立記錄的時候必需有值,比如定義一個「地址」對象,那麼必須填入「郵編」和「城市」。這時,我們就需要將「郵編」和「城市」欄位設置為「必需」。
欄位定義級別
最簡單的方法是在建立自定義欄位時,將某欄位定義為「必需」。這時,無論我們從用戶界面還是代碼來保存相關的數據,這個欄位的值都是必需的。
這是 Salesforce 提供的關於「必需」欄位最嚴格的檢查規則。
用戶界面級別
上述的方法過於嚴格,不適合需要靈活性的情況。那麼我們可以用其他方法來設定欄位的「必需」屬性。
最常見的方法就是在對象的用戶界面(Page Layout)將某欄位設置為「必需」。在這種情況下,只有通過用戶界面新建或保存數據的用戶需要為此欄位提供值,而通過代碼保存的數據則沒有這種檢查。
驗證規則級別
我們也可以通過驗證規則(Validation Rule)來將欄位定義為「必需」。這樣做有兩種好處:
- 避免了欄位定義級別的「必需」設置
- 驗證規則對用戶界面和代碼同時起作用
這種方法可以看作是上述兩種方法的中和。
「必需」欄位的許可權部署
在通過 Metadata API 對「必需」欄位的許可權進行部署時,有一條特殊的規則。
如果一個欄位是在欄位定義級別被設置為「必需」的話,對於 API 30.0 以後的版本,那麼我們不需要在簡檔(Profile)或許可權集(Permission Set)中對其進行許可權設置。
比如:
<fieldPermissions><editable>true</editable><field>Address__c.Postalcode__c</field><readable>true</readable></fieldPermissions>
如果我們用了上述的第一種方法將欄位 Postalcode__c 設置為「必需」,然後又在某個簡檔或許可權集中加入了上述的代碼,那麼在進行部署的時候就會出錯。
那麼我們怎麼確定該欄位的許可權呢?
在這種情況下,Salesforce 會自動將此欄位對於所有許可權可見(可讀、可修改)
推薦閱讀:
※一張圖看懂阿里雲在量子計算領域的布局
※雲支付的前景是怎樣的?
※由淺入深聊聊SAP Cloud Platform (Part III)
※「雲計算」很複雜?其實,一個小故事你就能看懂...
※你應該了解的 Spring Cloud 是什麼
TAG:Salesforce | 雲服務 |