使用中繼資料,在表單工作流程的電子郵件通知中填入資訊
您可以使用「指派任務」步驟來建立任務並指派給使用者或群組。 將任務指派給用戶或組時,會向已定義用戶或已定義組的每個成員發送電子郵件通知。 典型的電子郵件通知包含指派任務的連結和與任務相關的資訊。
您可以在電子郵件範本中使用中繼資料,以動態填入電子郵件通知中的資訊。 例如,在執行時期(產生電子郵件通知時)動態選取下列電子郵件通知中的標題、說明、到期日、優先順序、工作流程和最後日期的值。
中繼資料會儲存在索引鍵值配對中。 您可以在電子郵件範本中指定金鑰,而金鑰會在執行時期(產生電子郵件通知時)以值取代。 例如,在下列程式碼範例中,"$ {workitem_title} "是索引鍵。 在執行時期,會以值「Loan-Request」取代。
subject=Task Assigned - ${workitem_title}
message=<html><body>\n\
<table>\n\
<tbody>\n\
<tr>\n\
<td>\n\
Sample Company\n\
</td>\n\
</tr>\n\
<tr>\n\
<td>\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>\n\
<table>\n\
<tbody>\n\
<tr style="border-bottom: solid 2px #FFFCF9;">\n\
<td> TITLE</td>\n\
<td>\n\
<p>${workitem_title}</p>\n\
</td>\n\
</tr>\n\
<tr style="border-bottom: solid 2px #FFFCF9;">\n\
<td> DESCRIPTION</td>\n\
<td>\n\
<p>${workitem_description}</p>\n\
</td>\n\
</tr>\n\
<tr style="border-bottom: solid 2px #FFFCF9;">\n\
<td> DUE DATE</td>\n\
<td>\n\
<p>${workitem_due_date}</p>\n\
</td>\n\
</tr>\n\
<tr style="border-bottom: solid 2px #FFFCF9;">\n\
<td> PRIORITY</td>\n\
<td>\n\
<p>${workitem_priority}</p>\n\
</td>\n\
</tr>\n\
<tr>\n\
<td> WORKFLOW</td>\n\
<td>\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> \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>\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.</span></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中新增自訂中繼資料:
ECMAScriptis是指令碼語言。它用於用戶端指令碼和伺服器應用程式。 請執行下列步驟,以使用ECMAScript為電子郵件範本新增自訂中繼資料:
使用管理帳戶登入CRX DE。 URL為https://[server]:[port]/crx/de/index.jsp
導覽至/apps/fd/dashboard/scripts/metadataScripts。 建立副檔名為。ecma的檔案。 例如,usermetadata.ecma
如果上述路徑不存在,請建立它。
將程式碼新增至。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;
}
按一下「全部儲存」。 現在,此指令碼可供AEM工作流程模型中的選取。
(可選)指定指令碼的標題:
如果您未指定標題,「自訂中繼資料」欄位會顯示ECMAScript檔案的完整路徑。 執行下列步驟,為指令碼指定有意義的標題:
展開指令碼節點,按一下右鍵jcr:content節點,然後按一下Mixins。
在「編輯混音」對話方塊中輸入mix:title,然後按一下+。
新增具有下列值的屬性。
名稱 | jcr:title |
---|---|
類型 | 字串 |
值 | 指定指令碼的標題。 例如,策略持有者的自訂中繼資料。 指定的值顯示在分配任務步驟中。 |
您可以使用WorkitemUserMetadataService Java介面為電子郵件範本新增自訂中繼資料。 您可以建立使用WorkitemUserMetadataService Java介面的OSGi套件,並將它部署至AEM Forms伺服器。 它可讓中繼資料在「指派工作」步驟中供選取。
若要使用Java介面建立OSGi套件,請新增AEM Forms Client SDK jar和granite jar檔案,作為OSGi套件專案的外部相依性。 您可以使用任何Java IDE來建立OSGi套件。 下列程式提供使用Eclipse建立OSGi套件的步驟:
開啟Eclipse IDE。 導覽至「檔案>新增專案」。
在「選擇嚮導」螢幕上,選擇「管理項目」,然後按一下「下一步」。
在New Maven專案中,保留預設值,然後按一下「下一步」。 選擇原型並按一下「下一步」(Next)。 例如,maven-archetype-quickstart。 指定專案的群組ID、對象ID、版本和封裝,然後按一下「完成」。 將建立項目。
開啟pom.xml檔案進行編輯,並用以下內容替換檔案的所有內容:
新增使用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;
}
}
開啟命令提示,並導覽至包含OSGi搭售專案的目錄。 使用以下命令建立OSGi包:
mvn clean install
將套件上傳至AEM Forms伺服器。 您可以使用AEM Package Manager將搭售匯入AEM Forms伺服器。
匯入套件後,您可以在「指派工作」步驟中選取中繼資料,並使用電子郵件範本。