処理を作成しました。
テストメソッドで、あれ?どうすんの?と思ったので、メモ
// Userのトリガー
trigger UserTrigger on User (after insert) {
// ユーザ作成後にオブジェクトを作成する。
UserInsertExecute.insertUserInfo(Trigger.newMap.keySet());
}
UserInsertExecute クラス
@future
public static void insertUserInfo(Set ids) {
User user = [Select Id,CompanyName,LastName,FirstName,Department
@futureが必要みたい。理由はググって教えてください。というような、処理。以下テスト
private static final String TEST_EMAIL = 'hogehoge@exsample.com';
private static final String TEST_ACCOUNT_NAME = 'ApexAccountName';
private static final String TEST_CONTACT_LASTNAME = 'ApexContactLASTNAME';
private static final String TEST_CONTACT_FIRSTNAME = 'ApexContactFIRSTNAME';
private static final String TEST_USER_ALIAS = '別名';
Account acc = new Account(Name=TEST_ACCOUNT_NAME);
insert acc;
System.debug('■acc : ' + acc.Id);
Contact con = new Contact(
AccountId = acc.Id
,LastName = TEST_CONTACT_LASTNAME
,FirstName = TEST_CONTACT_FIRSTNAME
,CanAllowPortalSelfReg = true
);
insert con;
System.debug('■con : ' + con.Id);
Profile pro = [Select name, id From Profile where UserLicense.Name like '%Customer Portal%' LIMIT 1];
User u = new User(
Username = TEST_EMAIL
,LastName = TEST_CONTACT_LASTNAME
,Alias = TEST_USER_ALIAS
,TimeZoneSidKey = 'Asia/Tokyo'
,LocaleSidKey = 'ja_JP'
,EmailEncodingKey = 'ISO-2022-JP'
,LanguageLocaleKey = 'ja'
,Email = TEST_EMAIL
,CommunityNickname = 'CommunityNickname'
,ContactId = con.Id
,ProfileId = pro.Id
);
insert u;
参考:Provisioning Customer Portal Users with Apex

0 件のコメント:
コメントを投稿