変数値の式

FreeMarker式は、ダイアログ・フローの変数の値に使用できます。

便利な式

次に、フローで使用できる一般的な式をいくつか示します。

ヒント:

自動補完では、これらの(および他の) Apache FreeMarker式を記述します。
操作 Freemarker式 結果タイプ
親フローの名前の取得 ${system.parentFlow} 文字列
イベント・ペイロードの取得 ${skill.system.event.value.EVENT_NAME} JSONオブジェクト
NLP結果へのアクセス ${skill.system.nlpresult.value} JSONオブジェクト
スキル・スコープ変数へのアクセス ${skill.VAR_NAME}  
アクセス・フロー・スコープ変数 ${VAR_NAME}  
アクセス・フロー入力パラメータ ${INPUT_PARAM_NAME}  
ユーザースコープ変数へのアクセス ${user.VAR_NAME}  
アクセスプロファイルスコープ変数 ${profile.VAR_NAME}  
回答インテントの回答の取得 ${skill.system.event.value.intent.answer}

ノート: ${skill.system.event.value.answerIntent.answer}を使用することもできます。

 
インテント名の取得

${skill.system.event.value.intent.intentName}

文字列
エラー・メッセージを取得 ${skill.system.event.value.dialogError.errorMessage} 文字列
リソース・バンドル・エントリへのアクセス ${skill.system.rb.RB_ENTRY_NAME} リソース・バンドル
カスタム・パラメータの値にアクセスします ${skill.system.config.CUSTOM_PARAMETER_NAME} 文字列

コンポーネントのFreeMarkerの詳細は、Apache FreeMarker Template Languageの構文を参照してください。

Apache FreeMarker Template Languageの構文

Apache FreeMarker Template Language (FTL)を使用すると、変数値へのアクセス、レスポンス・アイテムの表示または非表示、ユーザー・メッセージ内のキーワードの検索、値リストの出力または特定のデータ属性でソートされた配列の表示を行うことができます。これらの値式の基本的な構文は${...}です。FTLは、様々なダイアログ・フロー・コンポーネントのプロパティ定義に組み込むことができます。
ノート

ifディレクティブ(<#if>...</#if>)を使用して式を定義することもできます。
手順は次のとおりです... 手順
変数から値を読み取ります。 ドット表記法を使用して、valueプロパティを追加します:
${VAR_NAME.value}
例:
${MyEmail.value}
複雑なエンティティーで定義された変数から値を読み取ります。 ドット表記法を使用して、プロパティを追加します:
${VAR_NAME.value.property}
例:
${MyMoney.value.totalCurrency}
YAMLベースのダイアログ・フローを持つスキルのSystem.Outputコンポーネントで${MyMoney}などの式を使用すると、参照される通貨のJSONオブジェクトのすべてのプロパティが表示されます。
値リスト・エンティティに定義された値セットを返します。 組込みのtype変数およびenumValues変数を次の構文で使用します:
${VAR_NAME.type.enumValues}
文字列、配列(シーケンス)、数値および日付にはbuilt-inを使用します。Apache FreeMarkerのリファレンスを参照してください。 valueプロパティの後に疑問符(?)および操作名を続けます:
${VAR_NAME.value?ftl_function}
  • 文字列操作:
    ${VAR_NAME.value?lower_case}
  • 配列操作:
    ${VAR_NAME.value?size?number}
  • 数値操作:
    ${VAR_NAME.value?round}
  • 日時操作:
    ${VAR_NAME.value.date?long?number_to_date?string.short}
FTL式を連結します。 疑問符(?)を使用して操作をひとまとめにします:
${VAR_NAME.value?ftl_function1?ftl_function2}

複数言語スキルでのエンティティ値の参照

複数言語スキルがある場合は、エンティティを解決するコンポーネントで「全エンティティ一致の使用」trueに設定されるようにしてください。これで、次の種類の式を記述できるようになります:

  • 会話の言語でエンティティ値を参照する式。このような式を使用して、ボタンや確認メッセージなどでユーザーにエンティティ値を表示するといった処理を行うことができます。

    そのような式では、valueを追加して、会話の言語で値を取得します。たとえば、ダイアログ・フロー変数pizzaを定義しており、プロンプトでPizzaSizeエンティティ値を参照する場合は、式で(pizza.value.PizzaSizeではなく) pizza.value.PizzaSize.valueを使用します。

  • プライマリ言語でエンティティの値を参照する式。プライマリ言語の値は、エンティティのすべての言語において対応する値のキーの一種として機能します。この値は、会話が行われている言語を気にせずに、ビジネス・ロジックで参照できます。

    このような式では、primaryLanguageValueを追加します(例: pizza.value.PizzaSize.primaryLanguageValue)。