その他の変数タイプ
フロー変数およびグローバル変数の他に、ユーザー・スコープ、プロファイルおよびシステム変数を使用できます。
ユーザー・コンテキストのプロファイル・スコープ変数
ユーザーの名前、ロケールおよびローカル時間の値には、チャット・クライアントからプロファイル設定にアクセスするプロファイル・スコープ変数を使用してアクセスできます。
"Hello ${profile.firstName}, how can I help you today?"

これらの事前定義済変数を使用して、スキル・ユーザーに固有のコンテキストを出力します。
これを行うには... | 方法... |
---|---|
ボット・ユーザーの名を取得します。 | ${profile.firstName} |
ボット・ユーザーの姓を取得します。 | ${profile.lastName} |
ボット・ユーザーのロケールを取得します。 | ${profile.locale}
|
ユーザーのタイムゾーンを取得します(ミリ秒単位でオフセットされます)。 | ${profile.timezoneOffset} |
これらの事前定義済変数は、メッセージング・プラットフォームが渡す値から自動的に設定されます。 値はメッセージング・プラットフォームによって異なり、一部のメッセージング・プラットフォームでは提供されない場合があります。 たとえば、「digital assistant as agent統合」の場合、profile.firstName
、profile.lastName
およびprofile.email
に値が設定されるのは、ユーザーがOracle Service Cloudにサインインした場合、またはチャットをリクエストする前にOracle Service Cloudチャット開始ページで名、姓および電子メール・アドレスのフィールドに入力した場合のみです。 Oracle Web Clientの場合、これらのプロファイル値はinitUserProfile
プロパティまたはupdateUser
メソッドで設定する必要があります。
戻り訪問のユーザー固有値の保存
ユーザー・スコープ変数を作成して、セッション間で永続化できます。
一般に、ユーザーがスキルまたはデジタル・アシスタントとの会話が終了すると、ユーザー入力から設定された変数値は破棄されます。 ただし、ユーザー・スコープ変数を定義して、以前のセッションからのユーザー入力を保持し、新しい会話を拡張することもできます。 ユーザー・スコープ変数は、コンポーネント自体で直接作成します。
ユーザー・スコープ変数を作成するには:
- 作成するコンポーネントのプロパティ・インスペクタの「変数」フィールドで、ドロップダウンから「ユーザー・スコープ変数」を選択します。
- 表示される「スコープ付き変数名」フィールドに、変数名を入力します。
user.
プレフィクスの名前withoutを入力します。 (このプレフィクスは、ユーザー・スコープ変数を参照するときに使用しますが、定義時には使用しません。)
ユーザー・スコープ変数を参照するには、${user.VAR_NAME}
のような式を使用します。
たとえば、「ピザ・スキル - ビジュアル・フロー・デザイナ」サンプル・スキルでは、lastOrderNumber
ユーザー・スコープ変数は、ユーザーが順序をservice.reg.placeOrder
フローに配置した後に設定されます。 この変数は、スキルが起動するたびにコールされるフローの最初の状態(handler.startSkill
)の式${((user.lastOrderNumber)?has_content)}
によって参照され、ユーザーが前の順序を実行したかどうかを判断します。
ノート:
user-scope変数の値はチャネル固有です。 たとえば、ユーザーがwebチャネルのスキルにアクセスし、後でMicrosoft Teamsチャネルを介してスキルにアクセスした場合、チーム・チャネルはユーザー変数の独自のインスタンスを持ち、Webチャネルの以前の会話の値を認識しません。
システム変数
変数 | タイプ | 説明 |
---|---|---|
system.nlpresult |
NLP結果 | ユーザー発話のNLP結果を保存するために使用されます。 NLPの完全な結果を取得するには、式${skill.system.nlpresult.value} を使用できます。
|
system.intent.utterance |
String | この変数に値がある場合、最後のユーザー・メッセージのかわりにインテント照合に使用されます。 この変数にアクセスするには、式${skill.system.intent.utterance} を使用できます。
|
system.event |
マップ | 組込みイベントの1つがメイン・フローまたはサブ・フローにマップされている場合、この変数にはイベントの処理に使用できるイベント・プロパティが保持されます。 たとえば、イベント・ペイロードを取得するには、${skill.system.event.value.EVENT_NAME} という形式で式を使用します。
|
system.rb |
リソース・バンドル | 言語リソース・バンドル・エントリにアクセスするために使用します。 リソース・バンドル・エントリにアクセスするには、${skill.system.rb.RB_ENTRY_NAME} 形式の式を使用できます。
|