2016-04-21

Apexでコミュニティユーザを作成する

Apexでコミュニティユーザを作成する方法の備忘録

こんな感じでコミュニティユーザを作成できます。

Account acc = new Account(Name='hoge-account');
insert acc;

Contact con = new Contact(LastName='hoge-contact', AccountId=acc.id);
insert con;

User u1 = new User(
  email=email,
  profileid = 'Community Profile ID',
  UserName = email,
  Alias = 'GDS',
  TimeZoneSidKey='Asia/Tokyo',
  EmailEncodingKey='UTF-8',
  LocaleSidKey='ja_JP',
  LanguageLocaleKey='ja',
  ContactId = con.Id,
  PortalRole = 'Manager', // 'Worker', 'Manager', 'Executive'
  FirstName = 'FirstName',
  LastName = 'LastName');
insert u1;

Customer Community Plusのユーザやパートナーコミュニティユーザの場合はPortalRoleを指定する必要があります。"Worker", "Manager", "Executive"の中から適切なロールを選択してください(選択できる値は取引先一つあたりのロール数の設定に依存)

CommunityからはSite.createPortalUserを使います。書き方はデフォルトで作成されるCommunitiesSelfRegControllerを参照。

String profileId = '{customer community profile id}'; 
String accountId = '{customer community account id}';

User u = new User();
u.Username = userName;
u.Email = email;
u.FirstName = firstName;
u.LastName = lastName;
u.CommunityNickname = communityNickname;
u.ProfileId = profileId;

String userId = Site.createPortalUser(u, accountId, password);

参考URLはこちら↓

このエントリーをはてなブックマークに追加