You need to sign in to do that
Don't have an account?
Sfdc11
DescribeSobject -Picklistvalues
Hi,
I'm retriving all the objects picklistvalues(options) through Describe(Dynamic Apex) Result.
Im getting governor limits for the -Number of picklist Describes:101.. Since in the for loop its exceeding more than 100 ,but I need to retrive for all objests in a Org.
is this possible through Batch Apex?? What is other workaround?
Please help me out..
Can you post your code here? may be you are using select query within for loop.
Thanks,
Public void getAllPickList(){
list<Schema.SObjectType> gd = Schema.getGlobalDescribe().Values();
list<PickList__c> list_PicklistobjType = new list<PickList__c>();
for(Schema.SObjectType obj : gd) { //for all objects in the schema
//hitting governor limits
// if ((obj.getDescribe().getLabel() == 'account') || (obj.getDescribe().getLabel()=='case') || (obj.getDescribe().getLabel() == 'contact')){
if (obj.getDescribe().getLabel() == 'account'){
Map<String, Schema.SObjectField> objFieldmap = obj.getDescribe().fields.getMap(); //field map for the given object
for(String field: objFieldmap.keyset()){
Schema.DisplayType fieldtype = objFieldmap.get(field).getDescribe().GetType(); //for each field in the object get field type
if (fieldtype == Schema.DisplayType.Picklist){ //if it's a picklist fill list with picklist values
list<Schema.PicklistEntry> pick_list_values = objFieldmap.get(field).getDescribe().getPickListValues();
for (Schema.PicklistEntry plv : pick_list_values) {
System.debug('pick***********'+objFieldmap.get(field).GetDescribe().Name);
//for each picklist value, add item to picklistobj list
PickList__c piclstObj = new PickList__c();
piclstObj.name = obj.getDescribe().getLabel();
piclstObj.PickListFiled_Name__c = objFieldmap.get(field).GetDescribe().Name;
piclstObj.PickListFiled_Value__c = plv.getValue();
list_PicklistobjType.add(piclstObj);
}
} //if it's a picklist
} //for loop
} //if it matches theObjectType
}
insert list_PicklistobjType;
}
}