Copilot Studioにおける変数を詳しく調べてみた。
変数の型
Copilot Studioで用意されている変数の型はPower Apps(Power Fx)とほぼ同じで、以下の通り。
- String:テキスト
- Bool:true or false
- Number:数字
- Table:テーブル(配列とかも含む)
- Record:レコード(オブジェクト)
- DateTime:日時、日付
- Choice:選択肢
- Blank:空白(Power Appsの空白と一緒)
Power Appsではテーブル型の値をコンボボックスとかで選択肢として使っていたけど、Copilot Studioでは「選択肢」は一つの型として扱う。

- 「年齢」「通貨」「回数」など:数字型
- 「郵便番号」「国」「都市」など:テキスト型
- 「ユーザー定義エンティティ」「複数選択オプション」など:選択肢型
となっている。
変数の種類
続いて変数の種類。Copilot Studioにおける変数には以下の4種類がある。
- トピック変数:トピック内で使用できる変数(最小スコープ)
- グローバル変数:全てのトピック内で利用が可能
- システム変数:Copilot Studio側で管理してくれる変数、全てのトピックで利用可能
- 環境変数:Power Platformの環境単位で設定できる変数。Power Appsとかと一緒
これらの詳細や動作の違いを見ていく。
変数のスコープ:トピック変数とグローバル変数



※厳密には「呼ばれる側」である必要はなく、エージェント内のすべてのトピックからグローバル変数を参照可能。


グローバル変数のライフサイクル
- セッションの終了
- 「変数値をクリアする」ノードの使用
※「セッション」についてはまた別の機会に。


トピック間の値の受け渡し
グローバル変数を多用すると変数の管理が煩雑になり、バグが発生する可能性が高くなるので、トピック間の値の受け渡しには引数と戻り値を利用するのがおすすめ。
引数の追加:他のトピックから値を受け取る




戻り値の追加:他のトピックに値を返す



以上がグローバル変数とトピック変数について。
システム変数
- Activity.Text:現在のアクティビティでユーザーが最後に送ったメッセージ
- LastMessage.Text:ユーザーが前に送信したメッセージ
- User.Email:ユーザーのメールアドレス
- User.PrincipalName:UPN
環境変数
環境変数はPower AppsとかPower Automateの環境変数と一緒で、環境間で異なる値を定義することができる。



以上、Copilot Studioで使える4種類の変数について。




コメント