Show Menu
主题×

在电子邮件通知中使用元数据

您可以使用分配任务步骤创建任务并将其分配给用户或用户组。 将任务分配给用户或用户组后,将向定义的用户或定义的用户组的每个成员发送电子邮件通知。 典型的电 子邮件通知 ,包含已分配任务的链接和与任务相关的信息。
您可以使用电子邮件模板中的元数据在电子邮件通知中动态填充信息。 例如,以下电子邮件通知中的标题、描述、到期日期、优先级、工作流和最后日期的值在运行时(生成电子邮件通知时)动态选择。
元数据以键值对的形式存储。 您可以在电子邮件模板中指定密钥,该密钥在运行时(生成电子邮件通知时)替换为值。 例如,在下面的代码示例中,“$ ”是键。 在运行时,它被替换为值“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_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添加自定义元数据

ECMAScript是一种脚本语言 。 它用于客户端脚本和服务器应用程序。 执行以下步骤以使用ECMAScript为电子邮件模板添加自定义元数据:
  1. 使用管理帐户登录到CRX DE。 URL是https://' # : # '/crx/de/index.jsp
  2. 导航到/apps/fd/仪表板/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工作流模型中进行选择。
  5. (可选)指定脚本的标题:
    如果未指定标题,则“自定义元数据”字段将显示ECMAScript文件的完整路径。 执行以下步骤为脚本指定有意义的标题:
    1. 展开脚本节点,右键单击 jcr:content节点 ,然后单击 Mixins
    2. 在“编辑混音”对话框中键入mix:title,然后单 击+
    3. 添加具有以下值的属性。
      名称
      jcr:title
      类型
      字符串
      指定脚本的标题。 例如,策略持有人的自定义元数据。 指定值显示在分配任务步骤中。

使用OSGi捆绑和Java界面添加自定义元数据

您可以使用WorkitemUserMetadataService Java界面为电子邮件模板添加自定义元数据。 您可以创建一个OSGi捆绑包,它使用WorkitemUserMetadataService Java界面并将其部署到AEM Forms服务器。 它使元数据可在分配任务步骤中进行选择。
要创建带Java界面的OSGi捆绑,请将 AEM Forms Client SDK jar和 granite jar 文件添加为OSGi捆绑项目的外部依赖关系。 您可以使用任何Java IDE创建OSGi捆绑包。 以下过程提供了使用Eclipse创建OSGi包的步骤:
  1. 打开Eclipse IDE。 导航到“文件”>“新建项目”。
  2. 在“选择向导”屏幕上,选择“管理项目”,然后单击“下一步”。
  3. 在New Maven项目中,保留默认值,然后单击“下一步”。 选择原型并单击“下一步”。 例如,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包管理器将包导入AEM Forms服务器。
导入捆绑包后,您可以在“分配任务”步骤中选择元数据,并将其用作电子邮件模板。