在電子郵件通知中使用中繼資料 use-metadata-in-an-email-notification
您可以使用「指派工作」步驟來建立工作並指派給使用者或群組。 當任務指派給使用者或群組時,會傳送電子郵件通知給已定義的使用者或已定義群組的每個成員。 典型的電子郵件通知包含指派工作的連結,以及與工作相關的資訊。
您可以在電子郵件範本中使用中繼資料,以動態方式填入電子郵件通知中的資訊。 例如,下列電子郵件通知中的標題、說明、到期日、優先順序、工作流程和最後日期的值會在執行階段動態選取(產生電子郵件通知時)。
中繼資料會儲存在索引鍵值配對中。 您可以在電子郵件範本中指定金鑰,在執行階段時(產生電子郵件通知時)將金鑰替換為值。 例如,在以下程式碼範例中,「$ {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. Do not reply to this email.</code></p>\n\
</td>\n\
</tr>\n\
</tbody>\n\
</table>\n\
</body>\n\
</html>\n\
在電子郵件通知中使用系統產生的中繼資料 using-system-generated-metadata-in-an-email-notification
AEM Forms應用程式可立即提供數個中繼資料變數(機碼值組)。 您可以在電子郵件範本中使用這些變數。 變數的值以關聯的表單應用程式為基礎。 下表列出所有立即可用的中繼資料變數:
在電子郵件通知中使用自訂中繼資料 using-custom-metadata-in-an-email-notification
您也可以在電子郵件通知中使用自訂中繼資料。 自訂中繼資料除了包含系統產生的中繼資料之外,也包含其他資訊。 例如,從資料庫擷取的原則詳細資訊。 您可以使用ECMAScript或OSGi套件組合在crx-repository中新增自訂中繼資料:
使用ECMAScript新增自訂中繼資料 use-ecmascript-to-add-custom-metadata
ECMAScript是指令碼語言。 用於使用者端指令碼和伺服器應用程式。 執行以下步驟,使用ECMAScript為電子郵件範本新增自訂中繼資料:
-
以管理帳戶登入CRX DE 。 URL是https://'[伺服器]:[連線埠]'/crx/de/index.jsp
-
導覽至/apps/fd/dashboard/scripts/metadataScripts。 建立副檔名為.ecma的檔案。 例如,usermetadata.ecma
如果上述路徑不存在,請建立它。
-
將程式碼新增至.ecma檔案,該檔案具有在索引鍵值配對中產生自訂中繼資料的邏輯。 例如,下列ECMAScript程式碼會產生保單的自訂中繼資料:
code language-javascript 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; }
-
按一下「儲存全部」。 現在,指令碼可在AEM工作流程模型中選取。
-
(選用)指定指令碼的標題:
如果您未指定標題,「自訂中繼資料」欄位會顯示ECMAScript檔案的完整路徑。 執行以下步驟,為指令碼指定有意義的標題:
-
展開指令碼節點,用滑鼠右鍵按一下 jcr:content 節點,然後按一下 Mixins。
-
在[編輯Mixin]對話方塊中輸入mix:title,然後按一下 +。
-
新增具有以下值的屬性。
table 0-row-2 1-row-2 2-row-2 名稱 jcr:title 類型 字串 值 指定指令碼的標題。 例如,原則持有者的自訂中繼資料。 指定的值會顯示在指派工作步驟中。
-
使用OSGi套件組合和Java介面來新增自訂中繼資料 use-an-osgi-bundle-and-java-interface-to-add-custom-metadata
您可以使用WorkitemUserMetadataService Java介面為電子郵件範本新增自訂中繼資料。 您可以建立使用WorkitemUserMetadataService Java介面的OSGi套件組合,並將其部署至AEM Forms伺服器。 它使中繼資料可用於指派任務步驟中的選擇。
若要建立具有Java介面的OSGi套件組合,請將AEM Forms使用者端SDK jar和granite jar檔案新增為外部相依性至OSGi套件組合專案。 您可以使用任何Java IDE來建立OSGi套件。 下列程式提供使用Eclipse建立OSGi套件的步驟:
-
開啟Eclipse IDE。 導覽至「檔案>新增專案」。
-
在「選取精靈」畫面上,選取「Maven專案」,然後按一下「下一步」。
-
在新Maven專案中,保留預設值,然後按下一步。 選取原型並按一下「下一步」。 例如,maven-archetype-quickstart。 指定專案的群組識別碼、人工因素識別碼、版本和封裝,然後按一下完成。 專案已建立。
-
開啟pom.xml檔案進行編輯,並將檔案的所有內容取代為下列內容:
-
新增使用WorkitemUserMetadataService Java介面為電子郵件範本新增自訂中繼資料的原始程式碼。 以下列出範常式式碼:
code language-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; } }
-
開啟命令提示字元並導覽至包含OSGi套件專案的目錄。 使用以下命令來建立OSGi套件:
mvn clean install
-
將套件組合上傳至AEM Forms伺服器。 您可以使用AEM封裝管理員將套件組合匯入至AEM Forms伺服器。
匯入束後,您可以在「指派任務」步驟中選取中繼資料,並將其用於電子郵件範本。