この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

EmailTemplateSelector インターフェース

Support.EmailTemplateSelector インターフェースでは、ケースフィードのデフォルトのメールテンプレートを指定できます。デフォルトのメールテンプレートを使用すると、ケース発生源や件名などの条件に基づいて、指定したメールテンプレートがケースに事前に読み込まれます。

名前空間

Support

デフォルトのテンプレートを指定するには、Support.EmailTemplateSelector を実装するクラスを作成する必要があります。

このインターフェースを実装する場合は、パラメータのない空のコンストラクタを用意します。

EmailTemplateSelector のメソッド

EmailTemplateSelector のメソッドは次のとおりです。

getDefaultTemplateId(caseId)

指定したケース ID を使用して、ケースフィードで現在表示されているケースに事前に読み込まれるメールテンプレートの ID を返します。

署名

public ID getDefaultTemplateId(ID caseId)

パラメータ

caseId
型: ID

戻り値

型: ID

EmailTemplateSelector の実装例

これは、Support.EmailTemplateSelector インターフェースの実装例です。

getDefaultEmailTemplateId メソッドの実装で、指定したケース ID に対応するケースの件名と説明を取得します。次に、ケースの件名に基づいてメールテンプレートを選択し、メールテンプレート ID を返します。

1global class MyCaseTemplateChooser implements Support.EmailTemplateSelector {
2    // Empty constructor 
3    global MyCaseTemplateChooser() {    }
4
5    // The main interface method 
6    global ID getDefaultEmailTemplateId(ID caseId) {
7        // Select the case we're interested in, choosing any fields that are relevant to our decision
8        Case c = [SELECT Subject, Description FROM Case WHERE Id=:caseId];
9
10        EmailTemplate et;
11
12        if (c.subject.contains('LX-1150')) {
13            et = [SELECT id FROM EmailTemplate WHERE DeveloperName = 'LX1150_template'];
14        } else if(c.subject.contains('LX-1220')) {
15            et = [SELECT id FROM EmailTemplate WHERE DeveloperName = 'LX1220_template'];
16        } 
17        
18        // Return the ID of the template selected
19        return et.id;
20    }
21}

次の例では、上記のコードをテストします。

1@isTest
2private class MyCaseTemplateChooserTest {
3
4    static testMethod void testChooseTemplate() {
5    
6        MyCaseTemplateChooser chooser = new MyCaseTemplateChooser();
7
8        // Create a simulated case to test with
9        Case c = new Case();
10        c.Subject = 'I\'m having trouble with my LX-1150';
11        Database.insert(c);
12            
13        // Make sure the proper template is chosen for this subject
14        Id actualTemplateId = chooser.getDefaultEmailTemplateId(c.Id);
15        EmailTemplate expectedTemplate = 
16          [SELECT id FROM EmailTemplate WHERE DeveloperName = 'LX1150_template'];
17        Id expectedTemplateId = expectedTemplate.Id;
18        System.assertEquals(actualTemplateId, expectedTemplateId);
19  
20        // Change the case properties to match a different template
21        c.Subject = 'My LX1220 is overheating';
22        Database.update(c);
23  
24        // Make sure the correct template is chosen in this case
25       actualTemplateId = chooser.getDefaultEmailTemplateId(c.Id);
26        expectedTemplate = 
27          [SELECT id FROM EmailTemplate WHERE DeveloperName = 'LX1220_template'];
28        expectedTemplateId = expectedTemplate.Id;
29        System.assertEquals(actualTemplateId, expectedTemplateId);
30    
31    }
32}