We
know there are two types of record-id are present in Salesforce (18
digit -- Case Insensitive,15 digit -- Case Sensitive). Only
3 digit of ids represent object type .The
following is a list of the Salesforce Standard Object ID prefixes.
Object
|
Prefix
|
Account
|
001
|
NOTE
|
002
|
Contact
|
003
|
User
|
005
|
Opportunity
|
006
|
Activity
|
007
|
If you want to get the Prefix of any object . Please try below code.
String keyPrefix = Account.sObjectType.getDescribe().getKeyPrefix();
System.debug('PREFIX--' + keyPrefix );
If you want to get the Object Name from RecordId then please try below code.
public class SchemaGlobalDescribeToGetObjectName{
public static String findObjectNameFromRecordIdPrefix(String recordIdOrPrefix) {
String objectName = '';
try {
String IdPrefix = String.valueOf(recordIdOrPrefix).substring(0,3);
Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
for(Schema.SObjectType stype : gd.values()) {
Schema.DescribeSObjectResult r = stype.getDescribe();
String prefix = r.getKeyPrefix();
if(prefix!=null && prefix.equals(IdPrefix)) {
objectName = r.getName();
System.debug('Object Name! ' + objectName);
break;
}
}
}catch(Exception e){
System.debug(e);
}
return objectName;
}
}
No comments:
Post a Comment