コレクション
前のユニットでは、グローバル変数とコンテキスト変数が単一の値を格納する方法を学習しました。 3 番目の変数型であるコレクションを使用すると、データのテーブルをメモリに格納できます。
コレクションは、アプリ内で再利用するために構造化データを一時的に格納する必要がある場合に便利です。 このデータは、データ ソースから取得することも、アプリ内で作成することも、両方の組み合わせにすることもできます。
コレクションを使用したパフォーマンスの向上
コレクションを使用する一般的な理由の 1 つは、同じデータ ソースへの繰り返し呼び出しを減らすことです。 たとえば、アプリでアクティブなプロジェクトの一覧を複数回参照する必要がある場合は、データを 1 回取得してコレクションに格納できます。 collectionProjects という名前のコレクションに Projects テーブルのコピーを格納するには、次の式を使用します。
Collect(collectProjects, Projects)
これにより、データ ソースの Projects テーブルと同じ行と列を持つ collectProjects という名前のコレクションが作成されます。 コレクションの使用について理解する必要があるいくつかの考慮事項を次に示します。
Collect 関数は委任できません。 つまり、既定では、データ ソースから最初の 500 レコードのみが取得され、コレクションに格納されます。 委任の操作の詳細については、「Power Apps キャンバス アプリでのデータ ソースの制限 (委任の制限) の操作」を参照してください。
コレクションは、作成後にデータ ソースにリンクされません。 つまり、コレクション内のデータに対する変更は、データ ソースに自動的に保存されません。 これには、データに対して行った変更が含まれます。 コレクションに対する変更に基づいてデータ ソースを更新する場合は、データ ソースからの再収集などの数式を作成する必要があります。
コレクションは一時的なものです。 アプリを閉じると、コレクションとそのすべての内容が削除されます。 コレクション データを格納する必要がある場合は、アプリを閉じる前にデータ ソースに書き込む必要があります。
動的コレクションの使用
コレクションはデータ ソースから取得する必要はありません。 アプリ内でコレクションを直接作成することもできます。 これは通常、ドロップダウン コントロール、コンボ ボックスを設定したり、データ ソースに書き込む前にデータをステージングしたりするために行われます。
次の数式では、 collectColors という名前のコレクションが作成されます。
Collect(collectColors, {Name: "Shane", FavoriteColor: "Orange"},
{Name: "Mary", FavoriteColor: "Blue"}, {Name: "Oscar", FavoriteColor:
"Yellow"})
| 名前 | お気に入りの色 |
|---|---|
| シェーン | Orange |
| メアリー | ブルー |
| オスカー | Yellow |
コレクションを作成したら、アプリ全体で再利用し、フィルター、並べ替え、CountRows などの標準テーブル関数を適用できます。
重要な制限の 1 つは、表形式のデータを格納している場合でも、コレクションを Form コントロールで直接使用できないことです。
コレクションと格納するテーブル データの操作の詳細については、「 Power Apps キャンバス アプリでテーブルとレコードを使用する基本的な数式を作成する」を参照してください。
さらに、コレクションはテーブル データを表形式のデータ ソースとまったく同じ方法で格納します。 ラーニング パス Power Apps キャンバス アプリでデータを操作する ためには、コレクションを活用してその可能性を拡張できる多くの概念があります。
このモジュールの最後のユニットでは、いくつかの追加の変数の概念と、それらをアプリに適用する方法について説明します。