Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

外部ユーザ有効化時のエラー「ポータル取引先所有者にロールを設定する必要があります」

公開日: Jun 27, 2024
説明

取引先責任者をパートナーまたはカスタマーポータルユーザとして有効化しようとすると、「UNKNOWN_EXCEPTION, portal account owner must have a role: []」(不明な例外、ポータル取引先所有者にロールを設定する必要があります: []) というエラーが表示される場合があります。

上記のエラーは、次のコードスニペットで発生する可能性があります。 

  Account a = new Account(Name='Test Account Name');
  insert a;

  Contact c = new Contact(LastName = 'Contact Last Name', AccountId = a.id);
  insert c;

  User user = new User();
  user.ProfileID = [Select Id From Profile Where Name='Some Portal Profile Name'].id;
  user.EmailEncodingKey = 'ISO-8859-1';
  user.LanguageLocaleKey = 'en_US';
  user.TimeZoneSidKey = 'America/New_York';
  user.LocaleSidKey = 'en_US';
  user.FirstName = 'first';
  user.LastName = 'last';
  user.Username = 'test@uniquedomain.com';   
  user.CommunityNickname = 'testUser123';
  user.Alias = 't1';
  user.Email = 'no@email.com';
  user.IsActive = true;
  user.ContactId = c.Id;

  insert user;


 

解決策

このエラーは、コードを実行しているユーザにロールが設定されていない場合に発生します。
次のコードを実行するユーザに必ずロールを割り当ててください (例: システム管理者ユーザにはデフォルトではロールが割り当てられていません)。エラーを解決するには、ユーザにロールを割り当てます。 
同じ理由で、取引先責任者をパートナーあるいはカスタマーポータルユーザとして有効化しようとすると同じエラーが表示されます。
次のサンプルコードで、Test クラスでこのエラーを回避する方法を示します。

UserRole userrole = [Select Id, DeveloperName From UserRole Where DeveloperName = 'CEO' Limit 1];

User adminUser = [Select Id, UserRoleId From User Where Profile.Name='System Administrator' Limit 1];

adminUser.UserRoleId = userRole.Id;
update adminUser;

System.runAs(adminUser){
    Account a = new Account(Name='Test Account Name');
    insert a;

    Contact c = new Contact(LastName = 'Contact Last Name', AccountId = a.id);
    insert c;

    User user = new User();
    user.ProfileID = [Select Id From Profile Where Name='Customer Community User'].id;
    user.EmailEncodingKey = 'ISO-8859-1';
    user.LanguageLocaleKey = 'en_US';
    user.TimeZoneSidKey = 'America/New_York';
    user.LocaleSidKey = 'en_US';
    user.FirstName = 'first';
    user.LastName = 'last';
    user.Username = 'test@uniquedomain.com';
    user.CommunityNickname = 'testUser123';
    user.Alias = 't1';
    user.Email = 'no@email.com';
    user.IsActive = true;
    user.ContactId = c.Id;

    insert user;
}


 

ナレッジ記事番号

000385901

 
読み込み中
Salesforce Help | Article