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