"How I can get the sObject Type from Record Id?". In many requirements I do have 15-digit or 18-digit Id and I want to know the sObject to which the Id belongs to. Answer is using Global Describe we can get the sObject type.
Am getting too many emails from folks from Community Forums regarding this, so here is the generic method which will help all.
Now how you can use this? Simply save the class and pass your object Id in method "GetKeyPrefix" like this
And it will return you the object API name.
Am getting too many emails from folks from Community Forums regarding this, so here is the generic method which will help all.
public class KeyPrefix { // map to hold global describe data private static Map<String,Schema.SObjectType> gd; // map to store objects and their prefixes private static Map<String, String> keyPrefixMap; // to hold set of all sObject prefixes private static Set<String> keyPrefixSet; private static void init() { // get all objects from the org gd = Schema.getGlobalDescribe(); // to store objects and their prefixes keyPrefixMap = new Map<String, String>{}; //get the object prefix in IDs keyPrefixSet = gd.keySet(); // fill up the prefixes map for(String sObj : keyPrefixSet) { Schema.DescribeSObjectResult r = gd.get(sObj).getDescribe(); String tempName = r.getName(); String tempPrefix = r.getKeyPrefix(); keyPrefixMap.put(tempPrefix, tempName); } } public static String GetKeyPrefix(String ObjId) { init() ; String tPrefix = ObjId; tPrefix = tPrefix.subString(0,3); //get the object type now String objectType = keyPrefixMap.get(tPrefix); return objectType; } }
Now how you can use this? Simply save the class and pass your object Id in method "GetKeyPrefix" like this
//a0090000002QGKu will be your object Id System.debug('::::::: '+ KeyPrefix.GetKeyPrefix('a0090000002QGKu') );
And it will return you the object API name.
Thank you very much
ReplyDeleteHow to write test class for this???
ReplyDeleteWith Winter '13, there is a new getSObjectType method that will greatly reduce the number of script statements you need to execute. All you need to do to now is ObjId.getSObjectType()
ReplyDeletejust for code improvement, instead of:
ReplyDeleteprivate static void init() {
try:
static {
This technique called "static constructor" in Apex (Java).
Hi Ankit Arora,
ReplyDeleteHow to delete objects and fields using visualforce page?
please help me............
Very nice and informative post. Thank you for sharing this amazing piece of content.
ReplyDeleteaudience response system
audience response system
audience response system
audience response system
audience response system rental
audience response system rental
audience response system rental
You've really made my day today with this post.
ReplyDeleteprostitution in London
Thanks for Fantasctic blog and its to much informatic which i never think ..Keep writing and grwoing your self
ReplyDeleteBirth certificate in delhi
Birth certificate in ghaziabad
Birth certificate in gurgaon
Birth certificate in noida
How to get birth certificate in ghaziabad
how to get birth certificate in delhi
birth certificate agent in delhi
how to download birth certificate
birth certificate in greater noida
birth certificate agent in delhi
Birth certificate in delhi
We have seen many blog but this the great one, Thanks for provide great informatic and looking beautiful blog, really nice required information & the things i never imagined and i would like to request, wright more blog and blog post like that for us. Thanks you once agian
ReplyDeletebirth certificate in delhi
birth certificate in noida
birth certificate in ghaziabad
birth certificate in gurgaon
correction in birth certificate
marriage registration in delhi
marriage certificate delhi
how to change name in 10th marksheet
marriage registration in ghaziabad
marriage registration in gurgaon