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

renderEmailTemplate()

メールテンプレートのテキスト本文の差し込み項目を、多態的な項目の場合も含め、Salesforce レコードの値で置き換えます。メールテンプレートの本文と対応する whoId 値および whatId 値は引数で指定します。

構文

1RenderEmailTemplateResult = connection.renderEmailTemplate(RenderEmailTemplateRequest[] renderRequests);

使用方法

renderEmailTemplate() コールは、カスタムテンプレートを使用したメールを sendEmail() コールで送信する場合の差し込み項目の表示に相当します。

renderEmailTemplate() コールの配列引数には最大 10 個の RenderEmailTemplateRequest 要素を指定でき、各 RenderEmailTemplateRequest には最大 10 個のテンプレート本文を含めることができます。各要求は配列内の他の要求から独立しており、1 つの要求でエラーが発生しても他の要求には影響しません。同様に、1 つのテンプレート本文でエラーが発生しても、同じ要求内の他のテキスト本文ではエラーになりません。

renderEmailTemplate() コールでは、差し込み項目が RenderEmailTemplateRequest の whatId または whoId の値に置き換えられます。

  • 差し込み項目が人以外のオブジェクトを参照している場合は、whatId の対応する値に置き換えられます。たとえば、差し込み項目が取引先または商談を参照している場合、whatId の値に置き換えられます。
  • 差し込み項目が人のオブジェクトを参照している場合は、whoId の対応する値に置き換えられます。たとえば、差し込み項目が取引先責任者、リード、またはユーザを参照している場合、whoId の値に置き換えられます。
RenderEmailTemplateRequest の whatId および whoId 項目の値は、要求ごとに検証されます。whatId が有効な What ID (人以外のオブジェクト) を参照していないか、whoId が有効な Who ID (人のオブジェクト) を参照していないと、要求に対してエラーが設定されます。

サンプルコード —Java

次のサンプルでは、renderEmailTemplate() コールで、すべての取引先責任者差し込み項目を、指定された whoId 引数の値で置き換えます。同様に、商談差し込み項目 ({!Opportunity.Name}) を、指定された whatId の値で置き換えます。このサンプルの 2 番目のテンプレート本文は不正な差し込み項目 ({!Contact.SNARF}) であるため、2 番目のテンプレートはエラーになります。ただし、要求を表示するテンプレート全体は成功します。

1public void renderTemplates(String whoId, String whatId) 
2        throws ConnectionException, RemoteException, MalformedURLException {
3    // Array of three template bodies.
4    // The second template body generates an error.
5    final String[] TEMPLATE_BODIES = new String[] {
6           "This is a good template body {!Contact.Name}", 
7           "This is a bad template body {!Opportunity.Name} {!Contact.SNARF} ", 
8           "This is another good template body {!Contact.Name}"};
9    
10    // Create request and add template bodies, whatId, and whoId.
11    RenderEmailTemplateRequest req = new RenderEmailTemplateRequest();
12    req.setTemplateBodies(TEMPLATE_BODIES);
13    req.setWhatId(whatId);
14    req.setWhoId(whoId);
15    // An array of results is returned, one for each request.	
16    // We only have one request.
17    RenderEmailTemplateResult[] results =  connection.renderEmailTemplate(
18            new RenderEmailTemplateRequest[] { req });
19    if (results != null) {
20        // Check results for our one and only request.
21        // Check request was processed successfully, and if not, print the errors.
22        if (!results[0].isSuccess()) {
23            System.out.println(
24            "The following errors were encountered while rendering email templates:");
25            for (Error err : results[0].getErrors()) {
26                System.out.println(err.getMessage());
27            }
28        } else {
29            // Check results for each body template and print merged body
30            RenderEmailTemplateBodyResult[] bodyResults = results[0].getBodyResults();
31            for( Integer i=0;i<bodyResults.length;i++) {
32                RenderEmailTemplateBodyResult result = bodyResults[i];
33                if (result.isSuccess()) {
34                    System.out.println("\nMerged body: \n" + result.getMergedBody());
35                } else {
36                    System.out.println("\nErrors were found for body[" + i + "]: ");
37                    for (RenderEmailTemplateError err : result.getErrors()) {
38                        System.out.println(err.getMessage() + " - Field name: " 
39                            + err.getFieldName());
40                    }
41                }
42            }
43        }
44    }
45}

最初の引数 (whoId) に有効な取引先責任者 ID を指定し、2 番目の引数 (whatId) に null を指定して、このサンプルを���行するとします。2 番目のテンプレートでは、不正な差し込み項目に対して、1 つのエラーが設定されています。応答は次のようになります。

1Merged body: 
2This is a good template body Howard Jones
3
4Errors were found for body[1]: 
5Field Contact.SNARF does not exist. Check spelling. - Field name: Contact.SNARF
6
7
8Merged body: 
9This is another good template body Howard Jones

RenderEmailTemplateRequest

名前 説明
templateBodies string[] {!Account.Phone}{!Contact.Name} などの差し込み項目を含めることができるテキスト本文の配列。
whatId reference 取引先、商談、キャンペーン、ケース、カスタムオブジェクトなどの人以外のオブジェクトを参照します。whatId は多態的です。つまり、ケースや商談など、複数の種別のオブジェクトを参照できる ID であるという意味です。
whoId reference リード、取引先責任者、ユーザなど、人のオブジェクトを参照します。whoId は多態的です。つまり、複数の種別のオブジェクトを参照できる ID であるという意味です。

障害

renderEmailTemplate() から、次のいずれかの API 状況コードが返される場合があります。

EMAIL_TEMPLATE_FORMULA_ERROR

EMAIL_TEMPLATE_MERGEFIELD_ACCESS_ERROR

EMAIL_TEMPLATE_MERGEFIELD_ERROR

EMAIL_TEMPLATE_MERGEFIELD_VALUE_ERROR

EMAIL_TEMPLATE_PROCESSING_ERROR