They are similar to a custom object, it enables a user to create custom data, make an association between them similar to the custom object. The difference is that the custom settings are exposed in the application cache, this data can then be efficiently accessed without querying the database and reduce the overall overhead at the server and improves the efficiency of the App. The custom setting can be used with validation rule, apex class or formula fields etc.
There are two types of custom settings:
- List Custom setting
- Hierarchy Custom Setting
List Custom setting provides a reusable set of static data, we can put frequently access data in the custom setting and this can be accessed without SOQL query to the database. Data in list custom setting does not change with profile or user and is available throughout the organization.
Hierarchy custom setting is based on organization’s hierarchy profile logic and is not available throughout the organization. It checks the context of the user for its profile, organization and then returns the lowest value.
The custom setting can be created from UI of Salesforce and can be managed after creating the setting.
Custom Setting methods
These methods are all instance specific methods, they are called and operate by a particular instance of the custom setting. Custom methods are divided based on the type custom setting we are accessing.
List Custom Setting Methods
The following are instance methods are used to fetch values from list custom settings.
- getAll(): Map of the dataset is returned in this method
- getInstance(dataSetName): it returns the data of the specific dataset mentioned in the method.
- getValues(dataSetName): it returns the data specific to the dataset name mentioned in the method.
Hierarchy Custom setting methods
The following are instance methods are used to fetch values from Hierarchy custom settings.
- getInstance(): the return result is specific for a particular user.
- getInstance(userId):returns the result specific for a specific user.
- getInstance(profileId):returns the result specific for a specific profile.
- getOrgDefault(): Returns the result for the Org
- getValues(userId): Returns the result for the specific user.
- getValues(profileId): Returns the result for the specific user.