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()

    

 

posted @ 2019-02-28 13:22  乔巴巴努力中  阅读(437)  评论(0编辑  收藏  举报