この文章は 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 を返します。

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

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

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