健康计划处方电子邮件 plan-prescription

在此页面上:​遵循个性化用例,通过嵌套配置文件数组反复使用条件规则来构建健康计划电子邮件,其中列出了可供收取或撤回的处方。

个人资料包含健康计划,每个计划都包含处方。 处方具有各种状态,如“准备就绪”、“召回”或“已接受”。

在此使用案例中,我们希望向每个用户档案发送一封电子邮件,其中包括准备好接收或撤回的所有处方。 单击下面的每个选项卡,以了解有关用于实施此用例的语法的更多信息。

已呈现消息

嗨,John,Doe

以下是已准备好取药或已被召回的处方:

健康计划A

  • 处方ID:首选项1
    名称:药物A
    状态:就绪
  • 处方ID: pres2
    名称:药物B
    状态:撤消

健康计划B

  • 处方ID: pres4
    名称:药物D
    状态:就绪
HTML模板
code language-html
<p>Hi {{profile.person.firstName}} {{profile.person.lastName}},</p>
<p>Here are the prescriptions that are either ready for pick up or have been recalled:</p>
{{#each profile.plans as |plan|}}
<h3>{{plan.name}}</h3>
<ul>
   {{#each plan.prescriptions as |prescription|}}
   {%#if prescription.state = "ready" or prescription.state = "recall"%}
   <li>
      <strong>Prescription ID:</strong> {{prescription.prescription_id}}<br>
      <strong>Name:</strong> {{prescription.name}}<br>
      <strong>State:</strong> {{prescription.state}}
   </li>
   {%/if%}
   {{/each}}
</ul>
{{/each}}
配置文件数据
code language-javascript
{
  "profile": {
    "person": {
      "firstName": "John",
      "lastName": "Doe"
    },
    "plans": [
      {
        "planId": "plan1",
        "name": "Health Plan A",
        "prescriptions": [
          {
            "prescription_id": "pres1",
            "name": "Medication A",
            "state": "ready"
          },
          {
            "prescription_id": "pres2",
            "name": "Medication B",
            "state": "recall"
          }
        ]
      },
      {
        "planId": "plan2",
        "name": "Health Plan B",
        "prescriptions": [
          {
            "prescription_id": "pres3",
            "name": "Medication C",
            "state": "picked up"
          },
          {
            "prescription_id": "pres4",
            "name": "Medication D",
            "state": "ready"
          }
        ]
      }
    ]
  }
}

快速参考 quick-reference

本节包含结构化知识,用于支持与本主题相关的解释、检索和问答。

要全面了解相关信息,应将此信息与本页上的文档相结合。 这两个源都不是独立的;页面描述了功能,而本节提供了其他上下文来帮助消除术语、意图、适用性和约束条件的歧义。

概述

TL;DR

此页面演示了一个完整的个性化用例:使用条件筛选对嵌套配置文件数组(包含处方健康计划)进行迭代,以在电子邮件中仅显示处于“就绪”或“召回”状态的处方。

意图

  • 查看个性化健康计划电子邮件的呈现输出示例
  • 了解使用条件数组迭代的嵌套{{#each}}{%#if%}块的HTML模板
  • 了解所需的配置文件数据结构:一个plans数组,其中每个计划都包含一个具有state字段的prescriptions数组
术语表
  • 嵌套迭代:在其他{{#each}}循环中使用{{#each}}循环遍历配置文件数据(例如,计划→处方)中的多级数组结构。
  • 处方状态:每个处方对象上的字段,用于指示其在此用例中的生命周期状态 — 使用的值为“就绪”、“召回”和“已提取”。 (用例特定)
  • {%#if%}/{%/if%}:消息模板中使用的条件块语法,用于在迭代期间筛选数组项(不同于双曲线{{#if}} Handlebars语法)。
术语
  • 规范名称:​嵌套数组迭代 — 变体:嵌套循环,嵌套每个,多级迭代
  • 请勿混淆: {{#each}} / {{/each}} (Handlebars迭代语法,双大括号)≠ {%#if%} / {%/if%} (条件语法,% — 大括号) — 在此模板中同时使用它们
  • 请勿混淆:“就绪”(处方可供提取)≠“撤消”(处方已被撤消)≠“提取”(处方已被收集 — 条件筛选条件从输出中排除)
常见问题解答

问:电子邮件输出中包含哪些处方状态?

只显示状态为“就绪”或“召回”的处方。 {%#if prescription.state = "ready" or prescription.state = "recall"%}条件筛选器将排除状态为“picked”的处方。

问:此用例需要什么配置文件数据结构?

具有plans数组的配置文件,其中每个计划对象都包含一个prescriptions数组。 每个处方对象必须具有prescription_idnamestate字段。

问:如何在模板中迭代计划和处方?

外部{{#each profile.plans as |plan|}}循环循环循环循环遍历每个健康计划。 其中,{{#each plan.prescriptions as |prescription|}}遍历每个计划的处方,并且有条件地块过滤器仅选择“就绪”或“撤消”状态。

recommendation-more-help
journey-optimizer-help