AccountCreator インターフェース
Chatter アンサーユーザと関連付けられる取引先レコードを作成します。
名前空間
使用方法
ChatterAnswers.AccountCreator は、chatteranswers:registration Visualforce コンポーネントの registrationClassName 属性で指定されます。このインターフェースは Chatter アンサーによってコールされます。また、このインターフェースでは、ポータルユーザが使用する取引先レコードをカスタム作成できます。
ChatterAnswers.AccountCreator インターフェースを実装するには、最初に implements キーワードでクラスを次のように宣言する必要があります。
1public class ChatterAnswersRegistration implements ChatterAnswers.AccountCreator {次に、クラスで次のメソッドの実装を提供する必要があります。
1public String createAccount(String firstname, String lastname, Id siteAdminId) {
2 // Your code here
3}実装されたメソッドは global または public として宣言する必要があります。
AccountCreator の実装例
これは、ChatterAnswers.AccountCreator インターフェースの実装例です。createAccount メソッドの実装では、ユーザ情報を受け取り、取引先レコードを作成します。メソッドは、取引先 ID の String 値を返します。
1public class ChatterAnswersRegistration implements ChatterAnswers.AccountCreator {
2 public String createAccount(String firstname, String lastname, Id siteAdminId) {
3 Account a = new Account(name = firstname + ' ' + lastname, ownerId = siteAdminId);
4 insert a;
5 return a.Id;
6 }
7}この例では、上記のコードをテストします。
1@isTest
2private class ChatterAnswersCreateAccountTest {
3 static testMethod void validateAccountCreation() {
4 User[] user = [SELECT Id, Firstname, Lastname from User];
5 if (user.size() == 0) { return; }
6 String firstName = user[0].FirstName;
7 String lastName = user[0].LastName;
8 String userId = user[0].Id;
9 String accountId = new ChatterAnswersRegistration().createAccount(firstName, lastName, userId);
10 Account acct = [SELECT name, ownerId from Account where Id =: accountId];
11 System.assertEquals(firstName + ' ' + lastName, acct.name);
12 System.assertEquals(userId, acct.ownerId);
13 }
14}