Как я могу вернуть тип записи по умолчанию для объекта, для любого данного пользователя?
У меня есть пользовательский объект, в который я хочу добавить новый элемент и назначить владение им для пользователя, который был введен через пользовательский ввод. Тип записи не соответствует значению по умолчанию в зависимости от владельца, поэтому мне нужно вернуть тип записи по умолчанию для указанного пользователя, чтобы я мог правильно создать свой элемент.
Я могу достаточно легко получить тип записи по умолчанию для объекта, но как мне получить его для любого пользователя?
1 ответ
Тип записи по умолчанию определяется только на уровне профиля (и, следовательно, пользователя), а не для всей организации. Итак, какой бы пользователь ни описывал объект, он увидит свой defaultRecordTypeMapping
определены для их профиля. Например, если пользователь A выполняет этот код в Apex:
for (Schema.RecordTypeInfo rtInfo : Account.SObjectType.getDescribe().getRecordTypeInfos()) {
if (rtInfo.isDefaultRecordTypeMapping()) {
System.debug(rtInfo);
}
}
Тип записи по умолчанию для пользователя A будет напечатан. Если бы пользователь B должен был запустить тот же код и был назначен другому профилю с другим типом записи по умолчанию, этот тип записи по умолчанию для этого пользователя был бы напечатан.
То же самое верно через API с describeSObject()
для SOAP или /services/data/v27.0/sobjects/:object/describe
для отдыха.
Вы могли бы получить recordId
по имени разработчика, см. информацию о выпуске
Попробуйте использовать это вместо
Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Master');