Ownership - это, вероятно, настраиваемое поле, или вы переименовали стандартное?
При описании вызовов это будет что-то вроде Account.Ownership__c.getDescribe().getPicklistValues();
. См. Здесь все поля описания методов .
Если вы хотите l oop через все раскрывающиеся списки, доступные для объекта, это будет примерно так:
List<String> objectNames = new List<String>{'Account'};
for(Schema.DescribeSObjectResult dsr : Schema.describeSObjects(objectNames)){
// System.debug(dsr);
String objectLabel = dsr.getLabel();
Map<String, Schema.SObjectField> allFields = dsr.fields.getMap();
System.debug(allFields);
for(String fieldName : allFields.keyset()){
Schema.DescribeFieldResult dfr = allFields.get(fieldName).getDescribe();
if(!dfr.getPicklistValues().isEmpty()){
System.debug(objectLabel + '.' + dfr.getLabel() + ': ' + dfr.getPicklistValues());
}
}
}
Account.Account Type: (Schema.PicklistEntry[getLabel=Prospect;getValue=Prospect;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Customer - Direct;getValue=Customer - Direct;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Customer - Channel;getValue=Customer - Channel;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Channel Partner / Reseller;getValue=Channel Partner / Reseller;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Installation Partner;getValue=Installation Partner;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Technology Partner;getValue=Technology Partner;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Other;getValue=Other;isActive=true;isDefaultValue=false;])
Account.Billing State/Province Code: (Schema.PicklistEntry[getLabel=Acre;getValue=AC;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Agrigento;getValue=AG;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Aguascalientes;getValue=AG;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Alabama;getValue=AL;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Alagoas;getValue=AL;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Alaska;getValue=AK;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Alberta;getValue=AB;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Alessandria;getValue=AL;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Amapá;getValue=AP;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Amazonas;getValue=AM;isActive=true;isDefaultValue=false;], ...)
Account.Billing Country Code: (Schema.PicklistEntry[getLabel=Afghanistan;getValue=AF;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Aland Islands;getValue=AX;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Albania;getValue=AL;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Algeria;getValue=DZ;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Andorra;getValue=AD;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Angola;getValue=AO;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Anguilla;getValue=AI;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Antarctica;getValue=AQ;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Antigua and Barbuda;getValue=AG;isActive=true;isDefaultValue=false;], Schema.PicklistEntry[getLabel=Argentina;getValue=AR;isActive=true;isDefaultValue=false;], ...)
Если вы хотите использовать SOQL для этого - вы можете запрашивать его по одному полю за раз, он будет в FieldDefinition . Однако у вас могут возникнуть проблемы с выполнением этого в обычном Apex SOQL, я думаю, вам понадобится выноска Tooling API. Что-то вроде /services/data/v48.0/tooling/query?q=SELECT QualifiedApiName, Metadata FROM FieldDefinition WHERE EntityDefinition.QualifiedApiName = 'Account' AND QualifiedApiName = 'Ownership__c'