このページでは:条件付きルールを使用してネストされたプロファイル配列を繰り返し処理するパーソナライゼーションの使用例に従って、受け取りや呼び出しの準備が整ったヘルスプランのメールリストの処方箋を作成します。
プロファイルには医療保険が含まれ、各保険には処方箋が含まれます。 処方箋には、「準備完了」、「リコール」、「受け取り済み」など、様々な状態があります。
このユースケースでは、受け取りの準備が整っている処方箋やリコールされた処方箋をすべて含めて、各プロファイルに 1 通のメールを送信します。 このユースケースの実装に使用する構文について詳しくは、以下の各タブをクリックしてください。
こんにちは、John Doe 様、
受け取りの準備が整っている処方箋やリコールされた処方箋は次のとおりです。
医療保険 A
- 処方箋ID: pres1
名前:薬A
状態:準備完了 - 処方箋ID: pres2
名前:薬B
状態:のリコール
医療保険 B
- 処方箋ID: pres4
名前:薬D
状態:準備完了
| code language-html |
|---|
|
| code language-javascript |
|---|
|
クイックリファレンス quick-reference
このセクションには、このトピックに関連する解釈、検索、質問への回答をサポートすることを目的とした構造化された知識が含まれています。
理解を深めるには、この情報をこのページのドキュメントと組み合わせる必要があります。 どちらのソースも単独で使用することを意図していません。このページでは、機能について説明しますが、この節では、用語、意図、適用可能性、および制約の曖昧さを解消するのに役立つ追加のコンテキストを提供します。
TL;DR
このページでは、完全なパーソナライゼーションのユースケースを示します。ネストされたプロファイル配列(処方箋を含むヘルスプラン)を条件付きフィルタリングで繰り返し処理して、メールの「準備完了」または「想起」状態でのみ処方箋を表示します。
インテント
- パーソナライズされたヘルスプランのメールのレンダリングされた出力例を参照してください
- 条件付き配列の反復にネストされた
{{#each}}および{%#if%}ブロックを使用して、HTML テンプレートについて説明します - 必要なプロファイルデータ構造について説明します。各プランに
state個のフィールドを含むprescriptions個の配列が含まれるplans配列
- ネストされた反復:他の
{{#each}}ループ内の{{#each}}ループを使用して、プロファイルデータ内のマルチレベル配列構造(計画→処方など)をトラバースします。 - 処方状態:この使用例では、各処方オブジェクトのライフサイクルステータスを示すフィールド。使用される値は、「準備完了」、「呼び出し」、「ピックアップ済み」です。 (ユースケース固有)
{%#if%}/{%/if%}: メッセージテンプレート内で条件付きブロック構文を使用して、反復中に配列項目をフィルタリングします(二重巻き{{#if}}Handlebars構文とは異なります)。
- 正規名: ネストされた配列イテレーション – バリアント:ネストされたループ、ネストされた各、マルチレベルのイテレーション
- 混同しないでください:
{{#each}}/{{/each}}(Handlebars イテレーション構文、二重中括弧) ≠{%#if%}/{%/if%}(条件付き構文、パーセント中括弧) – 両方がこのテンプレートで一緒に使用されます - 混同しないでください: 「準備完了」(処方箋を受け取り可能) ≠「リコール」(処方箋を回収しました) ≠「受け取り」(処方箋は既に収集されています。条件付きフィルターによる出力から除外されます)
Q: メール出力にはどの処方箋の状態が含まれていますか?
状態が「準備完了」または「呼び出し」の処方箋のみが表示されます。 状態「ピックアップ」の処方箋は、{%#if prescription.state = "ready" or prescription.state = "recall"%}条件フィルターによって除外されます。
Q:この使用例に必要なプロファイルデータ構造は何ですか?
plans配列を持つプロファイル。各プランオブジェクトにはprescriptions配列が含まれます。 各処方箋オブジェクトには、prescription_id、name、stateのフィールドが必要です。
Q: テンプレートで計画と処方箋はどのように繰り返されますか?
外側の{{#each profile.plans as |plan|}} ループは、各正常性プランに対して繰り返し実行されます。 その中で、{{#each plan.prescriptions as |prescription|}}は各プランの処方箋を繰り返し処理し、条件付きブロックフィルターは「準備完了」または「想起」の状態のみを返します。