Tuesday, December 6, 2016

Prefix of an Object in Salesforce.

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