I want to check whether a given object is standard or custom. At present I have a method which identifies custom objects but that is taking too much CPU time, which leads to salesforce exception.
public static Boolean getAllCustomSObjects(String objectname)
{Boolean customobject;
List<String> sObjectList = new List<String>();
for(Schema.SObjectType objTyp : Schema.getGlobalDescribe().Values())
{
Schema.DescribeSObjectResult describeSObjectResultObj = objTyp.getDescribe();
if(describeSObjectResultObj.isCustom())
{
String name = objTyp.getDescribe().getName();
// Exclude all the unwanted Sobjects e.g. History, Share etc..
/* if(!name.containsignorecase('history') && !name.containsignorecase('tag')&&
!name.containsignorecase('share') && !name.containsignorecase('feed'))
{
SobjectList.add(name);
} */
if(name.contains(objectname))
{customobject=true;
System.debug('Custom object found');
}
else
{
customobject=false;
System.debug('Custom object not found');
}
}
}
system.debug('SObjectList****' + SObjectList);
return customobject;
}
Instead of fetching all the custom object names and checking whether the the given object name is a custom object, I want to check the object directly. I tried to modify the line
Schema.DescribeSObjectResult describeSObjectResultObj = objTyp.getDescribe();
and to give the object name as parameter for DescribeSObjectResult but it was throwing error.Do anyone help in this?