在電子郵件通知中使用中繼資料

您可以使用「指派任務」步驟來建立任務並指派給使用者或群組。 將任務指派給用戶或組時,會向已定義用戶或已定義組的每個成員發送電子郵件通知。 典型的電子郵件通知包含指派任務的連結和與任務相關的資訊。

您可以在電子郵件範本中使用中繼資料,以動態填入電子郵件通知中的資訊。 例如,在執行時期(產生電子郵件通知時)動態選取下列電子郵件通知中的標題、說明、到期日、優先順序、工作流程和最後日期的值。

預設電子郵件範本

中繼資料會儲存在索引鍵值配對中。 您可以在電子郵件範本中指定金鑰,而金鑰會在執行時期(產生電子郵件通知時)以值取代。 例如,在下列程式碼範例中,"$ {workitem_title} "是索引鍵。 在執行時期,會以值「Loan-Request」取代。

subject=Task Assigned - ${workitem_title}

message=<html><body>\n\
 <table style="width: 480px; font-family: Helvetica, Arial, sans-serif; border: 0; padding: 0; vertical-align: top; text-align: left; word-wrap: break-word; margin: 16px auto; color:#323232; background-color:#FFFCF9; border-collapse: collapse;">\n\
  <tbody>\n\
   <tr>\n\
    <td style="height: 100px; width: 480px; background-color: #FFE0CB; border-top: 5pt solid black; font-family: Helvetica, Arial, sans-serif; font-weight: bold; font-size: 15px; line-height: 20px; padding: 12px; color: #707070;">\n\
      Sample Company\n\
    </td>\n\
   </tr>\n\
   <tr>\n\
    <td style="font-family: Helvetica, Arial, sans-serif; height: auto; background-color: #FFFCF9; padding: 32px 16px 20px 16px; ">\n\
     <pre style="font-size: 13px; font-family: Helvetica, Arial, sans-serif;  font-weight: normal; color: #323232;"> Hello ${workitem_assignee},\n\
 The following task has been assigned to you:</pre>\n\
    </td>\n\
   </tr>\n\
   <tr>\n\
    <td style="width: 480px;">\n\
     <table style="height: auto; width: 480px; background-color:#FFFBF9; font-family: Helvetica, Arial, sans-serif; border-collapse: collapse;">\n\
      <tbody>\n\
       <tr style="border-bottom: solid 2px #FFFCF9;">\n\
        <td style="font-family: Helvetica, Arial, sans-serif; width: auto; height: auto; background-color:#FFF5EF; font-weight: bold; font-size: 11px; line-height: 20px; padding: 12px; color: #707070;"> TITLE</td>\n\
        <td style="font-family: Helvetica, Arial, sans-serif; background-color:#FFF5EF; text-align: left; vertical-align: middle; height: auto; font-weight: normal; font-size: 13px; line-height: 20px; padding: 10px 16px 10px 32px; color: #323232;">\n\
         <p>${workitem_title}</p>\n\
        </td>\n\
       </tr>\n\
                            <tr style="border-bottom: solid 2px #FFFCF9;">\n\
        <td style="font-family: Helvetica, Arial, sans-serif; width: auto; height: auto; background-color:#FFF5EF; font-weight: bold; font-size: 11px; line-height: 20px; padding: 12px; color: #707070;"> DESCRIPTION</td>\n\
        <td style="font-family: Helvetica, Arial, sans-serif; background-color:#FFF5EF; text-align: left; vertical-align: middle; height: auto; font-weight: normal; font-size: 13px; line-height: 20px; padding: 10px 16px 10px 32px; color: #323232;">\n\
         <p>${workitem_description}</p>\n\
        </td>\n\
       </tr>\n\
       <tr style="border-bottom: solid 2px #FFFCF9;">\n\
        <td style="font-family: Helvetica, Arial, sans-serif; width: auto; height: auto; background-color:#FFF5EF; font-weight: bold; font-size: 11px; line-height: 20px; padding: 12px; color: #707070;"> DUE DATE</td>\n\
        <td style="font-family: Helvetica, Arial, sans-serif; background-color:#FFF5EF; text-align: left; vertical-align: middle; height: auto; font-weight: normal; font-size: 13px; line-height: 20px; padding: 10px 16px 10px 32px; color: #323232;">\n\
         <p>${workitem_due_date}</p>\n\
        </td>\n\
       </tr>\n\
       <tr style="border-bottom: solid 2px #FFFCF9;">\n\
        <td style="font-family: Helvetica, Arial, sans-serif; width: auto; height: auto; background-color:#FFF5EF; font-weight: bold; font-size: 11px; line-height: 20px; padding: 12px; color: #707070;"> PRIORITY</td>\n\
        <td style="font-family: Helvetica, Arial, sans-serif; background-color:#FFF5EF; text-align: left; vertical-align: middle; height: auto; font-weight: normal; font-size: 13px; line-height: 20px; padding: 10px 16px 10px 32px; color: #323232;">\n\
         <p>${workitem_priority}</p>\n\
        </td>\n\
       </tr>\n\
       <tr>\n\
        <td style="font-family: Helvetica, Arial, sans-serif; width: auto; height: auto; background-color:#FFF5EF; font-weight: bold; font-size: 11px; line-height: 20px; padding: 12px; color: #707070;"> WORKFLOW</td>\n\
        <td style="font-family: Helvetica, Arial, sans-serif; background-color:#FFF5EF; text-align: left; vertical-align: middle; height: auto; font-weight: normal; font-size: 13px; line-height: 20px; padding: 10px 16px 10px 32px; color: #323232;">\n\
         <p>${workitem_workflow}</p>\n\
        </td>\n\
       </tr>\n\
      </tbody>\n\
     </table>\n\
    </td>\n\
   </tr>\n\
   <tr style = "text-align: center; vertical-align: middle;">\n\
    <td style="padding:48px 0 72px 0;"> \n\
     <a href="${workitem_url}" target="_blank" style="background-color: #1EBBBB; font-size: 18px; line-height: 25px; font-weight: bold; color: #FFFFFF; text-decoration: none; padding: 15px 15px 15px 15px;">Open Task</a>\n\
    </td>\n\
   </tr>\n\
   <tr>\n\
    <td style="border-top: solid 1px #EDEAE7; padding: 16px;">\n\
     <p><span style="font-size: 12px; font-weight: normal; font-style: italic; color: #919191;">This is an automatically generated email. Please do not reply to this email.</code></p>\n\
    </td>\n\
   </tr>\n\
  </tbody>\n\
 </table>\n\
</body>\n\
</html>\n\

在電子郵件通知中使用系統產生的中繼資料

AEM Forms應用程式提供數個立即可用的中繼資料變數(索引鍵值配對)。 您可以在電子郵件範本中使用這些變數。 變數的值是以相關的表單應用程式為基礎。 下表列出所有可用的開箱中繼資料變數:

關鍵 說明
workitem_title 關聯表單應用程式的標題。
workitem_url 存取相關表單應用程式的URL。
workitem_description 關聯表單應用程式的說明。
workitem_priority 為關聯的表單應用程式指定的優先順序。
workitem_due_date 對關聯表單應用程式採取行動的最後日期。
workitem_workflow 與表單應用程式關聯的工作流程名稱。
workitem_assign_timestamp 將工作流項目指派給目前受託人的日期和時間。
workitem_assignee 目前受託人的名稱。
host_prefix 作者伺服器的URL。 例如,https://10.41.42.66:4502
publish_prefix 發佈伺服器的URL。 例如,https://10.41.42.66:4503

在電子郵件通知中使用自訂中繼資料

您也可以在電子郵件通知中使用自訂中繼資料。 自訂中繼資料除了包含系統產生的中繼資料外,還包含資訊。 例如,從資料庫中檢索的策略詳細資訊。 您可以使用ECMAScript或OSGi套件,在crx-repository中新增自訂中繼資料:

使用ECMAScript新增自訂中繼資料

ECMAScriptis是指令碼語言。它用於用戶端指令碼和伺服器應用程式。 請執行下列步驟,以使用ECMAScript為電子郵件範本新增自訂中繼資料:

  1. 使用管理帳戶登入CRX DE。 URL為https://'[server]:[port]'/crx/de/index.jsp

  2. 導覽至/apps/fd/dashboard/scripts/metadataScripts。 建立副檔名為。ecma的檔案。 例如,usermetadata.ecma

    如果上述路徑不存在,請建立它。

  3. 將程式碼新增至。ecma檔案,此檔案具有在索引鍵值配對中產生自訂中繼資料的邏輯。 例如,下列ECMAScript程式碼會產生保險單的自訂中繼資料:

    function getUserMetaData()  {
        //Commented lines below provide an overview on how to set user metadata in map and return it.
        var HashMap = Packages.java.util.HashMap;
        var valuesMap = new HashMap();
        valuesMap.put("policyNumber", "2017568972695");
        valuesMap.put("policyHolder", "Adobe Systems");
    
        return valuesMap;
    }
    
  4. 按一下「全部儲存」。 現在,此指令碼可供AEM工作流程模型中的選取。

    assigntask-metadata

  5. (可選)指定指令碼的標題:

    如果您未指定標題,「自訂中繼資料」欄位會顯示ECMAScript檔案的完整路徑。 執行下列步驟,為指令碼指定有意義的標題:

    1. 展開指令碼節點,按一下右鍵​jcr:content​節點,然後按一下​Mixins

    2. 在「編輯混音」對話方塊中輸入mix:title,然後按一下​+

    3. 新增具有下列值的屬性。

      名稱 jcr:title
      類型 字串
      指定指令碼的標題。 例如,策略持有者的自訂中繼資料。 指定的值顯示在分配任務步驟中。

使用OSGi套件和Java介面來新增自訂中繼資料

您可以使用WorkitemUserMetadataService Java介面為電子郵件範本新增自訂中繼資料。 您可以建立使用WorkitemUserMetadataService Java介面的OSGi套件,並將它部署至AEM Forms伺服器。 它可讓中繼資料在「指派工作」步驟中供選取。

若要使用Java介面建立OSGi套件,請新增AEM Forms Client SDK jar和granite jar檔案,作為OSGi套件專案的外部相依性。 您可以使用任何Java IDE來建立OSGi套件。 下列程式提供使用Eclipse建立OSGi套件的步驟:

  1. 開啟Eclipse IDE。 導覽至「檔案>新增專案」。

  2. 在「選擇嚮導」螢幕上,選擇「管理項目」,然後按一下「下一步」。

  3. 在New Maven專案中,保留預設值,然後按一下「下一步」。 選擇原型並按一下「下一步」(Next)。 例如,maven-archetype-quickstart。 指定專案的群組ID、對象ID、版本和封裝,然後按一下「完成」。 將建立項目。

  4. 開啟pom.xml檔案進行編輯,並用以下內容替換檔案的所有內容:

  5. 新增使用WorkitemUserMetadataService Java介面的原始碼,以新增電子郵件範本的自訂中繼資料。 以下列出范常式式碼:

    package com.aem.impl;
    
    import com.adobe.fd.workspace.service.external.WorkitemUserMetadataService;
    import org.apache.felix.scr.annotations.Component;
    import org.apache.felix.scr.annotations.Properties;
    import org.apache.felix.scr.annotations.Property;
    import org.apache.felix.scr.annotations.Service;
    import org.osgi.framework.Constants;
    
    import java.util.HashMap;
    import java.util.Map;
    
    @Component
    @Service
    @Properties({
            @Property(name = Constants.SERVICE_DESCRIPTION, value = "A sample implementation of a user metadata service."),
            @Property(name = WorkitemUserMetadataService.SERVICE_PROPERTY_LABEL, value = "Default User Metadata Service")})
    
    public class WorkitemUserMetadataServiceImpl
      implements WorkitemUserMetadataService
    {
      public WorkitemUserMetadataServiceImpl() {}
    
      public Map<String, String> getUserMetadataMap()
      {
        HashMap<String, String> metadataMap = null;
        metadataMap = new HashMap();
        metadataMap.put("test_metadata", "tested-interface implementation");
        return metadataMap;
      }
    }
    
  6. 開啟命令提示,並導覽至包含OSGi搭售專案的目錄。 使用以下命令建立OSGi包:

    mvn clean install

  7. 將套件上傳至AEM Forms伺服器。 您可以使用AEM Package Manager將搭售匯入AEM Forms伺服器。

匯入套件後,您可以在「指派工作」步驟中選取中繼資料,並使用電子郵件範本。

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now