Copilot StudioにはClearCollectやCollectのような関数が用意されていないが、動的にアイテムを追加したいことが多いので方法を調査。
今回やりたいこと

Copilot Studioにはコレクション(ClearCollectやCollect)が存在しないので、Table型の変数を更新していくことで実現することになる。
実現方法1:Table関数での更新
※変数の初期化で「空のテーブル」入れるとうまく動作しない(詳しくは章「おまけ」参照)。
※オブジェクトは最後に除去するので任意の値でOK。ただしプロパティはループの中で追加するアイテムのプロパティと揃える。



実現方法2:JSONを使う


Topic.json_Collection &
If(!IsBlank(Topic.json_Collection), ",") &
JSON({num:Topic.i})

ForAll(
ParseJSON("["&Topic.json_Collection&"]"),
{num:Int(ThisRecord.num)} // オブジェクトの定義
)

外部サービスなどとJSONでやり取りした値を動的に追加する場合は、こちらの方が楽かも。
おまけ:変数の初期値が空のテーブルだとうまく動作しない









コメント