小規模データ ペイロード - 取得するデータ量を制限する

エンタープライズ データ アプリの最も重要なパターンの 1 つは、Power Apps にフェッチするデータのサイズを制限することです。 データ ペイロードが小さければ、他のほとんどすべての作業が容易になります。 Items プロパティのデータ ソースに直接接続すると、ギャラリー コントロールとテーブル コントロールはこれを自動的に実行します。 たとえば、リモート データ ソースに直接接続すると、ギャラリーは、100 レコードなどの小さな増分でデータのページを制御します。 この機能は、エンド ユーザーがユーザー タスクに実際に 100 を超えるレコードを必要とすることはほとんどないという事実を利用しています。

委任の使用

データ ペイロードを小さく保つための重要な方法の 1 つは、Power Apps に到達する前にデータ ソースに依存して作業を行うことです。 委任 とは、Power Fx が Power Fx 式を、Dataverse、SQL Server、SharePoint、 などのデータソースが実行するクエリ式に変換できるときで、Excel が単独で処理できます。 そして、Power Fx がそのクエリを データ ソース に委任するか、クエリ作業 (データのマッシュアップ) を実行する責任を与えます。 データ ソース は正しいデータを生成し、Power Apps に返します。

データ ソースがギャラリーまたはテーブルに直接バインドされている場合、データは 100 レコードずつ、パフォーマンスの高い増分でページングされるか、Power Apps にデータが返されます。 データ ソースが異なれば、機能も異なります。 Dataverse では、たとえば、サーバー上のデータをフィルターする機能は Excel よりもはるかに多くあります。 良い例は CountRows と CountIf です。 Dataverse は限定的な方法で CountRows をサポートします。 Dataverse はテーブルのサイズを定期的に計算し、その値を保持します。 CountRows が呼び出されると、その値が与えられます。 そうすれば、CountRows の呼び出しごとに正確な数を取得するためにテーブル全体のスキャンを実行する必要がなくなります。 ただし Dataverse は、CountIf で最大 50,000 行までの正確なカウントもサポートします。 Dataverse サーバーの良好なパフォーマンスを維持するための方法として、これら 2 つの異なる機能が提供されます。 一方、SharePoint はこの機能をサポートしていません。 したがって、SharePoint の CountRows または CountIf を含む Power Fx 数式は委任されません。 代わりに、Power Apps は 500 - 2000 の限られた数の行をダウンロードします。 Power Fx は 500 / 2000 レコードをローカルで処理し、結果を返します。 データが常に 500 / 2000 レコード未満の場合、このアプローチは機能します。 ただし、500 / 2000 レコードを超える場合は、間違った結果が得られる可能性があります。

多すぎる列を使用しない

既定では、Power Apps は機能呼び出し明示的な列選択を使用して、特定のクエリに必要な実際の列を計算します。 この機能は、すべての新しいアプリでは既定でオンになっています。 キャンバス アプリで明示的な列選択機能をオンにするには、設定 > 今後の機能 > プレビュー>にアクセスし、明示的な列の選択をオンに切り替えます。

サジェスチョン

小規模データ ペイロードという目標を達成するには、次の質問と提案を考慮してください。

  1. ギャラリーまたはテーブルの既定のクエリが約 100 - 200 のレコードのみを返すようにしてください。 委任可能なクエリを使用する場合、これは自動的に行われます。 API または委任をサポートしていないその他のソースをクエリしている場合は、パラメーターを使用して結果を絞り込みます。

    • データを自動的にフィルタリングするデータ ソース ベースのビューの使用を検討してください。 ほとんどのエンタープライズ グレードのアプリは、データ ソースのビューを多用します。
    • データの範囲を指定するために、既定のルックアップ値またはフィルター値を使用することを検討してください。
    • データを表示する前に、UI で検索引数を要求することを検討してください。
    • アプリに関する次の質問を検討してください。
      • 既定で特定の画面に何が必要ですか?
      • エンド ユーザーが特定のビジネス アクションを実行するために本当に必要なデータは何ですか?
      • 通常、ユーザーはタスクを実行するために最初の画面に何千ものレコードを表示する必要はありません。
  2. データ ソースの委任テーブルを使用して、ギャラリーまたはテーブルのクエリの作成を開始します。 クエリでサポートされている関数のみを選択してください。 クエリが委任可能でない場合、委任可能にするにはどうすればよいでしょうか?