Salesforce Apex学习 : 利用Schema命名空间中的DescribeSObjectResult类型来获取sObject对象的基本信息
DescribeSObjectResult 对象的取得:
//使用getDescribe方法和sObject token Schema.DescribeSObjectResult mySObjDescribe = MySObject__c.sObjectType.getDescribe(); //使用Schema的sObjectType静态变量 Schema.DescribeSObjectResult mySObjDescribe = Schema.SObjectType.MySObject__c;
Schema.DescribeSObjectResult类包含了sObject 和其中 field 的所有描述用的基本属性.DescribeSObjectResult是非序列化的,并且在运行时是受验证的.
DescribeSObjectResult包含许多实例方法,参见:Apex Developer Guide 中的DescribeSObjectResult Class.
这里只对其中部分方法进行说明(RecordType相关):
getRecordTypeInfos()
返回一个List,包含当前Object所支持的所有的RecordTypes.当前用户不需要有对每个RecordType都有访问权限也可查看此List.
public List<Schema.RecordTypeInfo> getRecordTypeInfos()
getRecordTypeInfosByDeveloperName() (推荐使用,因为DeveloperName不可重复)
返回一个Map,匹配着DeveloperName(也就是Record Type Name)和其关联的RecordType.当前用户不需要有对每个RecordType都有访问权限也可查看此Map.
public Map<String,Schema.RecordTypeInfo> getRecordTypeInfosByDeveloperName()
getRecordTypeInfosById()
返回一个Map,匹配着RecordType ID和其关联的RecordType.当前用户不需要有对每个RecordType都有访问权限也可查看此Map.
public Map<ID, Schema.RecordTypeInfo> getRecordTypeInfosById()
getRecordTypeInfosByName()
返回一个Map,匹配着RecordType Label和其关联的RecordType.当前用户不需要有对每个RecordType都有访问权限也可查看此Map.
public Map<String, Schema.RecordTypeInfo> getRecordTypeInfosByName()