对于任何给定用户,如何返回对象的默认记录类型?

时间:2013-03-13 10:21:03

标签: types salesforce apex-code custom-object

我有一个自定义对象,我想在其中添加一个新项目并将其所有权分配给用户,该用户已通过用户输入输入。根据所有权,记录类型不会默认为适当的值,因此我需要返回指定用户的默认记录类型,以便我可以正确创建项目。

我可以很容易地获得对象的默认记录类型,但我如何为任何用户获取它?

2 个答案:

答案 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');