在Salesforce中动态获取sObject的RecordType的ID

通常在Salesforce的Apex代码和测试中,都会不可避免的需要用到sObject的RecordTypeID,一般情况下,有两种方式来获取:

方式一:
如果足够熟悉RecordType表的话,通过SOQL,定义一个方法,通过传入sObjectType和你需要的Record Type
Name就可以获取对应的RecordType的ID了。

public Id getRecordTypeIdBySobjectTypeAndName(String sObjType,String recordTypeName){
return [select Id, Name from RecordType where SobjectType = :sObjType and Name = :recordTypeName].Id;
}

方式二:
对于方式一,其实无形之中会增加在Salesforce中的Too many queries的概率,毕竟你增加了一个Query,本来query都是要省着用的,而且有时候会不小心放在for-loop里面,就很尴尬了。所以,其实是有方法不通过Query来获取ID的:

Id devRecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByName().get('Development').getRecordTypeId();
解析:
Schema.SObjectType.(sObjectd API name).getRecordTypeInfosByName().get('recordType的Name').getRecordTypeId();

这样就可以动态的在任何时候,任何地方,获取你想要的RecordType的ID,进而进行后续操作了,而且没有占用query次数。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容