Power Appsの不要なコレクションを削除する
2021-06-01
azblob://2022/11/11/eyecatch/2021-06-01-power-apps-how-to-drop-collection-000.jpg

 こんにちは 前回自己紹介をしました本田です.

Power Appsでは,コレクションと呼ばれる,アプリ内に一時的にデータを保存する機能が用意されています.

しかし,このコレクション自身を削除する方法がわかりづらかったのでまとめていきます.

削除方法

コレクションを参照したCollect関数が無くなるとコレクションごと消えます.

削除ボタンで参照してようが,ギャラリーで参照してようが,Collect関数での参照が消えると即時削除されます.試してみましょう.

実際にやってみる

コレクション自身の削除をするために,コレクションを作成したいと思います.

まず,それぞれの要素の記述を掲載します.

Collect関数でコレクションを追加するボタン(以降,Collectのボタン)のOnSelect文は以下のように記述しました.

Collect(TESTCollection,
    {
        hoge: "ほげ",
        huga: "ふが"
    }    
);

Patch関数でコレクションを追加するボタン(以降,Patchのボタン)のOnSelect文は以下のように記述しました.

Patch(TESTCollection, Defaults(TESTCollection),
        {hoge:"hoge"},
        {huga:"huga"}
);

コレクションを全削除するボタン(以降,削除ボタン)のOnSelect文は以下のように記述しました.

RemoveIf(TESTCollection, true);

これで準備完了です.

CollectのボタンとPatchのボタンをポチってみましょう.「フォルダ」タブの「コレクション」を開いてみると,と以下のように表示されたと思います.

ちゃんとコレクションとしてCollect,Patch,どちらの処理とも追加されています.次に,削除ボタンで削除してみます.削除ボタンをポチった後のコレクションがこちら.

コレクションの中身は削除できてますが,コレクション自身は削除できてないです.

Patchのボタン,削除ボタンを押しても消してもコレクション自身は残り続けますが,Collectのボタンを消すと...

消えた!

まとめ

 コレクションは,参照されているCollect関数が無くなった瞬間に削除される

というわけで,不要なコレクションがある場合は,どこかにCollect関数が残ってないか探してみましょう.

余談ですが,外部のデータソースもCollect関数で操作することができます.が,Patch関数を使うべきです.

Collect関数でデータソースを操作する際に要素を指定しますが,その要素が外部データソースになかった場合,別のデータソースと解釈され,コレクションが新しく生成されます.このコレクションの名前が大問題です.コレクションの名前がそのまま外部データソースの名前に,外部データソースの名前は "元の名前" + " _1 "の名前になります.こうなると,これまで書いていたCollect関数すべてを削除・編集しなおさなければなりません.ですので,ミスの際の労力を考えて,Patch関数を使うのをお勧めします.