Как я могу вернуть тип записи по умолчанию для объекта, для любого данного пользователя?

У меня есть пользовательский объект, в который я хочу добавить новый элемент и назначить владение им для пользователя, который был введен через пользовательский ввод. Тип записи не соответствует значению по умолчанию в зависимости от владельца, поэтому мне нужно вернуть тип записи по умолчанию для указанного пользователя, чтобы я мог правильно создать свой элемент.

Я могу достаточно легко получить тип записи по умолчанию для объекта, но как мне получить его для любого пользователя?

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');
Другие вопросы по тегам