我有一个自定义对象,我想在其中添加一个新项目并将其所有权分配给用户,该用户已通过用户输入输入。记录类型不默认为适当的值,基于所有权,所以我需要返回指定用户的默认记录类型,这样我才能正确创建我的项目。
我可以很容易地获得对象的默认记录类型,但是如何为任何用户获得它?
我有一个自定义对象,我想在其中添加一个新项目并将其所有权分配给用户,该用户已通过用户输入输入。记录类型不默认为适当的值,基于所有权,所以我需要返回指定用户的默认记录类型,这样我才能正确创建我的项目。
我可以很容易地获得对象的默认记录类型,但是如何为任何用户获得它?
默认记录类型仅在简档(以及用户)级别定义,而不是针对整个组织。因此,任何描述对象的用户都会看到他们自己defaultRecordTypeMapping
为他们的配置文件定义的。例如,如果用户 A 在 Apex 中执行此代码:
for (Schema.RecordTypeInfo rtInfo : Account.SObjectType.getDescribe().getRecordTypeInfos()) {
if (rtInfo.isDefaultRecordTypeMapping()) {
System.debug(rtInfo);
}
}
将打印用户 A 的默认记录类型。如果用户 B 运行相同的代码并被分配到具有不同默认记录类型的不同配置文件,则将打印该用户的默认记录类型。
describeSObject()
对于 SOAP 或/services/data/v27.0/sobjects/:object/describe
REST ,API 也是如此。
您可以recordId
通过开发者名称获取,请参阅发布信息
尝试改用它
Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Master');