Customer List and Customer Hierarchy
- Customer List
List : 列表自定义设置允许您存储经常使用的组织范围的静态数据,这些数据特点是是公用的不变的。 - Customer Hierarchy :
Hierarchy :通过层次结构设置,您可以针对不同的配置文件和/或用户个性化您的应用程序,这个类型可以与通过与简档和User进行关联。
下面我们直接进行举例说明,时间时候选择使用List 什么时候使用Hierarchy , 能够更好的覆盖我们的业务。
* Customer List eg:*
场景:当我们需要把一组选项列表的数据存入系统,并且在VF页面中我们需要把这些数据取出来进行展示。对Org中所有的人数据展示都是一样的,那么我们就需要选择List类型进行存储,又比如,我们需要在存入其他系统的UserName Pwd等,这个就类似与Java等语言中的配置文件了。
如上图是一个List类型的配置,输入想要配置的数据至系统中,然后我们使用两种代码取值的方式进行取值:
以下示例返回自定义设置数据的映射。 getAll方法返回与列表设置关联的所有自定义字段的值
Map<string,AESKey__c> mapCodes = AESKey__c.getAll();
// display the ISO code for Afghanistan
System.debug('key: '+mapCodes.get('AESKey').key__c);
以下示例使用getValues方法返回与指定数据集关联的所有字段值:
List<AESKey__c> listCodes = AESKey__c.getAll().values();
附加一个使用代码段:
public with sharing class CustomSettingsListController {
public String selectedIso {get;set;}
public List<selectOption> isoCodes {
get {
List<selectOption> options = new List<selectOption>();
for (AESKey__ciso : AESKey__c.getAll().values())
options.add(new SelectOption(iso.name,iso.Name+' - '+iso.key__c));
return options;
}
set;
}
}
Customer Hierarchy eg:
场景:与Customer List 不同的点是 Herarchy可以配合简档和User进行使用,简单粗暴的理解就是不同的系统User通过我们的配置文件后,读取到的数据是不一样的。比如销售A的单子折扣是1% ,销售B 单子的折扣是2%,那么我们就要通过这种配置文件去实现会更方便。
我们在使用公式和验证规则中同样的也可以使用该配置,请自行创建字段体会:
{!$Setup.CustomSettingName__c.CustomFieldName__c}
同样的我们在代码中也有两种获取配置文件的方法:
以下示例使用getOrgDefaults方法返回组织级别的数据集值
CustomSettingName__c mc = CustomSettingName__c.getOrgDefaults();
以下示例使用getInstance方法返回指定概要文件的数据集值。 getInstance方法也可以与用户ID一起使用
CustomSettingName__c mc = CustomSettingName__c.getInstance(Profile_ID);