Как описать (перечислить) список выбора, действительный для определенного типа записи в Salesforce? - PullRequest
7 голосов
/ 18 октября 2011

В апекс-коде я хочу перечислить допустимые значения для поля списка выбора. Для этого я могу просто позвонить Account.Foobar__c.getDescribe().getPickListValues() и у меня есть список значений Schema.PickListEntry.

Однако возможно настроить несколько типов записей для данного объекта sObject. Например, Учетная запись может иметь типы записей «Производитель», «Распространитель» и «Продавец». В настройках Salesforce можно редактировать (ограничивать) записи списка выбора для каждого поля в зависимости от типа записи. Таким образом, учетные записи типа Retailer могут использовать только часть значений списка выбора для поля Foobar.

Так что в основном я хочу Account.Foobar__c.getDescribe().getPickListValues('Retailer') однако это не синтаксис. Метод validFor выглядит многообещающе, но кажется, что он предназначен только для зависимых от поля списков выбора - список выбора, отфильтрованный только по типу записи, возвращает false для isDependentPicklist.

Ответы [ 2 ]

6 голосов
/ 14 мая 2012

Я знаю, что это старый пост, но, возможно, информация ниже поможет кому-то, кому еще нужен ответ.

Я нашел здесь , что на самом деле можно получить список значений списка выбора, специфичных для типа записи, выполнив метод descriptionLayout ().

Используя ваш пример (C #):

DescribeLayoutResult result = binding.describeLayout("Account", new string[] { "01230000000xxXxXXX" } );
PicklistEntry[] values = result.recordTypeMappings[0].picklistsForRecordType[12345].picklistValues;
  • Замените "01230000000xxXxXXX" на RecordTypeId вашего объекта типа записи Retailer. Используйте запрос "SELECT Id FROM RecordType WHERE Name = 'Retailer'", чтобы получить значение.
  • Замените 12345 индексом объекта списка выбора, значения которого вы хотите получить.
3 голосов
/ 19 октября 2011

Вы не можете сделать это в чистом Apex AFAIK, к сожалению.API метаданных действительно раскрывает его.

Мнения по теме: http://boards.developerforce.com/t5/Apex-Code-Development/Any-way-to-obtain-picklist-values-by-record-type/td-p/287563

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...