Copilot Studioにおけるループについて調べていたらおもしろい記事を見つけたので紹介。
会話の中でループを作る方法
Copilot Studioにおいて、会話内のループを構築する場合は「手順に移動」ノードを使用していた。
これはCとかのgoto文と同じ機能で、この「手順に移動」を使用して、前のステップに戻ることでループをつくっていた。
ただ、今回見つけたこちらの記事にトピック内でForeachループを使うことができる、と書いてあったので試してみた。
![]()
Discover thousands of collaborative articles on 2500+ skills
Discover 100 collaborative articles on domains such as Marketing, Public Administration, and Healthcare. Our expertly cu...
構築
今回はサンプルとして指定した数のループを実行するトピックを構築。
まずは適当なトリガーを用意して、ループする回数をスロット充填で取得する。


そしたらForeachを追加するためコードエディタを開いて、


actionsの中にkindとしてForeachを追加する。(YAML記法っぽい)


idは適当でよいみたいなので、適当なIDを採番してコードエディタを閉じる。


するとフローにForeachループが追加される。


指定した数のループを実行するため、[ループする項目]にはSequence関数を追加して、


ループの各項目が入る[ループ値の変数]には新しい変数を追加。


※プロパティからループのインデックスも取得可能。


最後に現在の数字をメッセージで送信するノードを追加したいんだけど、[変数の選択]からは変数iにアクセスできないよう。


そこで再度コードエディタを開いて、関数と変数を直接入力する。


フローに戻って関数が入力されていれば完成。


動作確認
こんな感じで回数を指定すると、トピック内でループが実行される。


Power Virtual Agent時代の名残なのか、またはCopilot Studioにおいて今後追加する機能なのかはわからないけど、コードエディタからであればForeachを使うことができる。
コメント