Привет всем,
подскажите, столкнулся с такой проблемой
Мне нужно получить возможные значения picklist для объекта. Пока это не проблема и решается вот так:
Map<String, Schema.SObjectField> leadFields = Lead.SObjectType.getDescribe().fields.getMap();
list<Schema.PicklistEntry> values = leadFields.get('Status').getDescribe().getPickListValues();
for (Schema.PicklistEntry a : values) {
...
}
НО! В объекте есть RecordTypes и набор возможных значений Picklist меняется в зависимости от RecordType.
Как мне в коде определить список возможных значений picklist поля по RecordType?
Привет всем, подскажите, столкнулся с такой проблемой Мне нужно получить возможные значения picklist для объекта. Пока это не проблема и решается вот так: [code] Map<String, Schema.SObjectField> leadFields = Lead.SObjectType.getDescribe().fields.getMap(); list<Schema.PicklistEntry> values = leadFields.get('Status').getDescribe().getPickListValues(); for (Schema.PicklistEntry a : values) { ... }[/code] НО! В объекте есть RecordTypes и набор возможных значений Picklist меняется в зависимости от RecordType. Как мне в коде определить список возможных значений picklist поля по RecordType?
у DescribeFieldResult есть метод getController() - может быть, чем-то поможет!
у DescribeFieldResult есть метод getController() - может быть, чем-то поможет!
Не получилось ничего выжать из getController(). Но спасибо за совет.
Нашел в интернете обходной путь решения данной проблемы. Все источники явно заявляют что нет "прямого" способа это сделать в коде, хотя информация не первой свежести.
Так как все равно мне эти значения нужны были на странице, то создал объект-болванку с нужным рекорд тайпом, а на странице вставил inputField для нужного Picklist, а потом с помощью jQuery выдрал все labels и values. Чтобы лишний input не мозолил глаза пользователю, то скрыл его со страницы с помощью css.
Вот такой вот обходной путь Может кому пригодится.
Не получилось ничего выжать из getController(). Но спасибо за совет. Нашел в интернете обходной путь решения данной проблемы. Все источники явно заявляют что нет "прямого" способа это сделать в коде, хотя информация не первой свежести. Так как все равно мне эти значения нужны были на странице, то создал объект-болванку с нужным рекорд тайпом, а на странице вставил inputField для нужного Picklist, а потом с помощью jQuery выдрал все labels и values. Чтобы лишний input не мозолил глаза пользователю, то скрыл его со страницы с помощью css. Вот такой вот обходной путь :) Может кому пригодится.
О друг мой ты столкнулся с редкостной жопой. И зовут её depended picklist. Я нашёл решение этой проблемы только на JS. Найду ссылку обновлю инфу.
[quote="Dmitry Shnyrev"]Не получилось ничего выжать из getController(). Но спасибо за совет. Нашел в интернете обходной путь решения данной проблемы. Все источники явно заявляют что нет "прямого" способа это сделать в коде, хотя информация не первой свежести. Так как все равно мне эти значения нужны были на странице, то создал объект-болванку с нужным рекорд тайпом, а на странице вставил inputField для нужного Picklist, а потом с помощью jQuery выдрал все labels и values. Чтобы лишний input не мозолил глаза пользователю, то скрыл его со страницы с помощью css. Вот такой вот обходной путь :) Может кому пригодится.[/quote] О друг мой ты столкнулся с редкостной жопой. И зовут её depended picklist. Я нашёл решение этой проблемы только на JS. Найду ссылку обновлю инфу.