应用场景:在使用Apex新建记录时,有时需要根据具体需求为用户匹配对应的记录类型,这个时候就需要用到记录类型Id的情况。
获取RecordTypeId的方法有2种,一种是根据soql进行查询,另一种是使用内置方法查询;
方法1:过滤的是DeveloperName
- Id recordTypeId = [SELECT Id, Name, DeveloperName, isActive
- FROM RecordType
- WHERE DeveloperName ='Tender_Record_Offline_Media' AND SobjectType = 'Advertiser_Tender_Relationship__c' LIMIT 1].Id
方法2:注意传入的是Label Name
- Id devRecordTypeId = Schema.SObjectType.ObjectName.getRecordTypeInfosByName().get('Label Name').getRecordTypeId();
- 如:Id devRecordTypeId = Schema.SObjectType.Advertiser_Tender_Relationship__c.getRecordTypeInfosByName().get('线下媒介-普通').getRecordTypeId();
资源链接:
https://devforce.co/apex-tip-how-to-get-a-recordtype-id-by-name-without-soql/
https://salesforce.stackexchange.com/questions/157608/getrecordtypeinfosbyname