値を集約するロールアップ列を定義する

ロールアップ列は、主要ビジネス指標を監視することによって、ユーザーがデータを把握するのに役立ちます。 ロールアップ列には、指定した行に関連する行に対して計算された集計値が含まれています。 これには、メールや予定など定期的なテーブルと活動テーブルが含まれます。

より複雑なシナリオでは、行の階層にわたるデータを集計できます。 管理者またはカスタマイザーの場合は、Power Apps のカスタマイズ ツールを使用してコードを記述する必要なく、ロールアップ列を定義できます。

ロールアップ列の利点と機能

ロールアップ列の利点と機能は次のとおりです:

  • ビジュアル編集が簡単です。 通常の列を作成する場合とまったく同じように、列エディターを使用して、ロールアップ列を作成できます。
  • 幅広い種類の集計機能。 SUMCOUNTMINMAX、および AVG の関数を使用してデータを集計できます。
  • 集計に対応した十分なフィルターサポート。 複数の条件を設定すると同時に、ソーステーブルまたは関連テーブルに対して各種フィルターを設定できます。
  • ユーザー インターフェイスとのシームレスな統合。 ロールアップ列をフォーム、ビュー、グラフ、レポートに含めることができます。
  • ロールアップ列はソリューション コンポーネントです。 ロールアップ列は環境間でコンポーネントとして簡単に移動し、ソリューションで配布することができます。
  • ロールアップ列と計算列は相互補完的です。 ロールアップ列を計算列の一部として、逆に、計算列をロールアップ列の一部として使用できます。
  • ユーザー定義コントロールを使用するように、ロールアップ列を構成できます。

ロールアップ列の一部の例として、以下のものがあります。

  • 取引先企業のオープンしている営業案件の合計売上見込み
  • 1 つの階層内のすべての取引先企業に関してオープンしている営業案件の合計売上見込み
  • 下位の営業案件を含む営業案件の合計売上見込み
  • キャンペーンによって発生した見込みのある潜在顧客の合計売上見込み
  • 1 つの階層内のすべての取引先企業に関して高優先度のオープンしているサポート案件の数
  • 1つの取引先企業に関して高優先度のすべてのオープンしているサポート案件がもっとも早く作成された時期

各ロールアップ列には、<columnname>_date<columnname>_state の接尾語のパターンを持つ 2 つの付属列が作成されます。 _date 列は DateTime データを含み、_state 列は整数データが含まれます。 _state 列には次の値があります。

完了状態 内容
0 NotCalculated この列の値はまだ計算されていません。
1 計算 この列の値は、_date 列の最新の更新時間ごとに計算されます。
2 OverflowError この列の値の計算によってオーバフロー エラーが発生しました。
3 OtherError この列の値の計算は内部エラーによって失敗しました。 計算ジョブの次の実行によって、これが修復されるみたいです。
4 RetryLimitExceeded 並行処理の多さと競合のロックが原因で、値の計算の再試行の最大数を超過し、列の値の計算に失敗しました。
5 HierarchicalRecursionLimitReached 最大限度の階層の深さに計算が到達したことが原因で、列の値の計算に失敗しました。
6 LoopDetected 列の階層で再帰的ループが検出されたことが原因で、行の値の計算に失敗しました。
7 CurrencyMissing 必要なフィールド通貨が欠落しているため、列値の計算に失敗しました。

ロールアップ計算

ロールアップは、バックグラウンドで非同期に実行される、スケジュールされたシステム ジョブによって計算されます。 ロールアップ ジョブを表示および管理する管理者になる必要があります。

ロールアップ ジョブの表示

ロールアップ ジョブを表示するには:

  1. Power Apps にログインし、必要な環境を選択します。
  2. 設定 (歯車) > 高度な設定を選択します。
  3. 設定 > システム ジョブを選択します。
    システム ジョブに移動。
  4. ビュー セレクターで、定期システム ジョブを選択します。
  5. 関連するジョブをすばやく見つけるため、システム ジョブの種類によってフィルター処理できます: ロールアップ フィールドの一括計算またはロールアップ フィールドの計算

ロールアップ フィールドの一括計算

ロールアップ フィールドの一括計算は、ロールアップ列ごとに作成された定期的ジョブです。 ロールアップ列の作成または更新後に 1 回行われます。 このジョブは、この列が含まれるすべての既存のレコードの指定されたロールアップ列の値を再計算します。 既定では、このジョブは、列の作成または更新から 12 時間後に実行されます。 列が変更されると、ジョブは更新から 12 時間後に再度実行されるように再設定されます。 環境の非運用時間中に、ロールアップ フィールドの一括計算が実行されるようにするには、12 時間の猶予が必要となります。

ロールアップ列の作成後または変更後に、ロールアップ フィールドの一括計算ジョブが非運用時間に実行されるように、その開始時間を管理者が調整することをお勧めします。 たとえば、ロールアップ列の効率的な処理を保証するために、ジョブ実行の適切な時間は深夜です。

ロールアップ列が更新されない状況が発生した場合、10 年が経過するまで、その列に対してロールアップ フィールド一括計算ジョブが再度実行されないことに注意してください。 この動作は仕様によるものです。 ロールアップ フィールドに関連付けられている基になる列に更新がない場合、ジョブをより頻繁に実行する理由はありません。

ロールアップ列の計算

ロールアップ フィールドの計算 は、指定したテーブルの既存の行にあるすべてのロールアップ列の逐次計算を実行する定期的なジョブです。 テーブルごとに、ロールアップ フィールドの計算 ジョブは 1 つだけあります。 逐次計算とは、最後のロールアップ フィールドの一括計算ジョブの実行の終了後に、作成、更新、または削除されたレコードを、ロールアップ フィールドの計算ジョブが処理することを意味します。 既定の最小反復設定は 1 時間です。 テーブルの最初のロールアップ列が作成されるときにジョブが自動的に作成され、最後のロールアップ列が削除されるときにジョブが削除されます。

オンライン再計算オプション

フォームのロールアップ列には、計算機の画像、ロールアップ値、および最後の計算の時刻が表示されます。 再計算するには、計算機の画像を選択してから、表示されている 再計算 ボタンを選択します。

取引先企業フォームのロールアップ列。

オンライン再計算オプション (フォーム上の手動更新) を使用するとき、留意すべきいくつかの考慮事項があります。

  • テーブルに対する書き込み権限と、更新の対象となるソース行に対する書き込みアクセス権が必要です。 たとえば、取引先企業のオープンとなっている営業案件から売上見込みを計算するとき、書き込み権限は営業案件テーブルに対しては必要はありませんが、取引先企業テーブルに対してのみ必要です。
  • このオプションは、オンライン モードでのみ使用できます。 オフライン作業中は使用できません。
  • ロールアップ更新時の最大行数は 50,000 行に制限されます。 階層ロールアップ時には、その階層全体の関連行に適用されます。 制限を超えると次のエラー メッセージが表示されます: 50,000 件の関連行の計算の限界に達したため、オンラインで計算を実行することができません。 ロールアップがシステム ジョブによって自動的に再計算されるときは、この上限は適用されません。
  • ソース行の最大の階層の深さの限界は 10 です。 制限を超えると次のエラー メッセージが表示されます: ソース行の階層の深さの限界の 10 に到達したので、オンラインで計算を実行することができません。 ロールアップがシステム ジョブによって自動的に再計算されるときは、この上限は適用されません。

ロールアップ ジョブの定期的なアイテムの修正

システム管理者は、ロールアップ ジョブの繰り返し実行のパターンを変更できます。また、ロールアップ ジョブを延期、一時停止、再開することができます。 ただし、ロールアップ ジョブを取り消し、または削除することはできません。

定期実行をするアイテムのパターンを一時停止、延期、再開、変更するには、システム ジョブを確認する必要があります。 詳細 ロールアップ ジョブの表示

ナビゲーション バーで、アクションを選択し、目的のアクションを選択します。

ロールアップ フィールドの一括計算ジョブに使用できる選択肢: 再開延期、および一時停止

ロールアップ フィールドの計算ジョブの場合に使用できる選択肢: 定期的なアイテムの変更再開延期、および一時停止

使用例

いくつかのロールアップ列の例を見てみましょう。 行のデータを、階層を使用して、また階層を使用せずに、関連行から集計します。 関連する活動と、ActivityParty テーブル経由で行に間接的に関連する活動から行のデータを集計することもできます。 各サンプルでは、列エディターを使用して、ロールアップ列を定義します。 列エディターを開くには、ソリューション エクスプローラーを開き、コンポーネント > テーブル を展開します。 必要なテーブルを選択し、 を選択します。 新規を選択します。 エディターで、列の種類 および データの種類 を含む必要な情報を列に設定します。 データ型の選択が終わったら、列の種類ロールアップ を選択します。 データ型には、小数、整数、通貨、および日時があります。 列の種類 の隣の 編集 ボタンを選択します。 これによって、ロールアップ列の定義エディターが表示されます。 ロールアップ列の定義は、ソース テーブル、**関連テーブル、集計 の 3 つのセクションから構成されます。

  • ソース テーブル セクションでは、ロールアップ列が定義されるテーブルと、階層対して集計を行うかどうかを指定します。 ロールアップの対象として使用する階層内の行を指定する、複数の条件を設定したフィルターを追加できます。

  • 関連テーブル セクションで、集計の対象とするテーブルを指定します。 ソース テーブルの階層でのロールアップを選択したとき、このセクションはオプションです。 複数の条件を使用するフィルターを追加して、計算に使用する関連行を指定できます。 たとえば、年間売り上げが $1000 を超える、オープンしている営業案件の売り上げを含めます。

  • 集計セクションで、計算の対象となるマトリックスを指定します。 集計関数は、SUM、COUNT、MIN、MAX、AVG から選択できます。

この例では、階層は使用されません。 取引先企業の合計売上見込みが、関連付けられたオープンしている営業案件から計算されます。

取引先企業の売上見込みの集計。

行のデータを階層の全域の子の行から集計する

この例では、階層全域の、子営業案件を含む営業案件の合計売上見込みを計算します。

売上見込み、販売機会階層の集計。

この例では、階層全域の全取引先企業のオープンしている営業案件の合計売上見込みを計算します。

取引先企業階層の売上見込みの集計。

この例では、費やされて請求の対象となる合計の時間を、取引先企業と関連するすべての活動から計算します。 これには、電話、予定、またはユーザー定義の活動に費やした時間を含めることができます。

以前のリリースでは、電話、FAX、予定などの個別の活動について、ロールアップ列を定義できました。 しかし、次に示す例の結果を得るには、計算列を使用してデータの集計をする必要がありました。 現在は、活動エンティティに対して 1 つのロールアップ列を定義することによって、ワンステップでそれを行うことができます。

取引先企業のすべての活動のロールアップ。

この例では、取引先企業に送信されたメールの総数を計算します。この場合、取引先企業はメールの "宛先" 行または "CC 宛先" 行に記載されています。 これは、ロールアップ列定義の活動 パーティ テーブルに対して、FILTERS参加の種類 を指定して行います。 フィルターを使用しない場合、活動に対する使用可能なすべての参加の種類が計算に使用されます。

特定の活動に対して使用可能な活動 パーティ テーブルと参加の種類の詳細については、ActivityParty エンティティ を参照してください。

関連する活動と活動関係者をロールアップ。

この例では、取引先企業と関連するすべての営業案件から平均売上見込みを計算します。

Dynamics 365 の平均売上見込み。

次の例は、取引先企業の階層にわたる関連する営業案件から、平均の売り上げ見込みを計算する方法を示しています。 平均の売り上げ見込みを階層の各レベルで表示できます。

Dynamics 365 の階層の平均売上見込み。

ロールアップ列考慮事項

ロールアップ列を使用するときは、次の特定の条件と制約に注意ください。

  • 環境については最大 200 のロールアップ列を、各テーブルについては最大 50 のロールアップ列を定義できます。 現在のデフォルト値と以前の最大値は、環境ごとに 100、テーブルごとに 10 です。 詳細: 環境またはテーブル内のロールアップ列の最大数を定義する
  • ワークフローをロールアップ列の更新によって起動することはできません。
  • ワークフローの待機条件にロールアップ列を使用することはできません。
  • ロールアップ列に対するロールアップはサポートされません。
  • ロールアップは、他の計算列のすべての列が現在のテーブルにある場合も、他の計算列を使用する計算列を参照できません。
  • ロールアップは、フィルターをソース テーブルまたは関連テーブル、単純な列または複雑でない計算列にのみ適用できます。
  • ロールアップは、1:N の関連付けを持つ関連テーブルに対してのみ実行できます。 ロールアップは、N:N の関連付けに対しては実行できません。
  • ロールアップは、活動テーブルや活動パーティ テーブルの 1:N の関連付けに対しては実行できません。
  • ビジネス ルール、ワークフロー、または計算列は、常にロールアップ列の最後の計算値を使用します。
  • ロールアップ列は、システム ユーザーのコンテキストで集計されます。 すべてのユーザーに同じロールアップ列の値を表示できます。 ロールアップ列の表示を、列レベル セキュリティ (FLS) を使用してロールアップ列にアクセスできる者を制限することによって制御できます。 詳細: アクセスを制御する列レベル セキュリティ

環境またはテーブル内のロールアップ列の最大数を定義する

環境については最大 200 のロールアップ列を、各テーブルについては最大 50 のロールアップ列を定義できます。 現在のデフォルト値と以前の最大値は、環境ごとに 100、テーブルごとに 10 です。

最大値を増やすには、次の手順に従います:

  1. Power Apps (make.powerapps.com) に移動し、左側のナビゲーション ペインで テーブル を選択して、組織 テーブルを開きます。
  2. n より多い リストを選択し、検索 ボックスに maxr と入力します。 MaxRollupFieldsPerOrg 列と MaxRollupFieldsPerEntity 列を選択し、保存 を選択します。 値を増やすには最大ロールアップ列を選択します
  3. 必要な MaxRollupFieldsPerOrg (最大 200) と MaxRollupFieldsPerEntity (最大 50) の値を変更します。

重要

環境に 100 を超えるロールアップ列があると、ロールアップ列のパフォーマンスが低下し、ストレージ消費量が増加する可能性があります。

丸め処理の精度

集計列の小数点以下の桁数がロールアップ列の小数点以下の桁数より多い場合、集計を実行する前に集計列の桁数はロールアップの桁数に丸められます。 この動作を説明するために、特定の例を見てみましょう。 関連する営業案件の売上見込みの合計を計算するために、取引先企業テーブルのロールアップ列の精度が、小数点以下 2 桁であるとします。 推定 営業案件テーブルの売上見込み列は、小数点以下の 4 桁の集計列です。 この例では、取引先企業に 2 つの関連する営業案件が存在しています。 売上見込みの集計は次のとおりに計算されます:

  1. 推定 最初の営業案件の売上見込み: $1000.0041
  2. 推定 2番目の営業案件の売上見込み: $2000.0044
  3. 売り上げ見込みの集計 売上: $1000.00 + $2000.00 = $3000.00

このように、集計が実施される前に集計列に小数点以下は 2 桁に丸められます。

関連グリッドから別の動作

取引先企業や取引先担当者など一部のテーブル フォームには、標準で、関連するグリッドが含まれています。 たとえば、取引先企業フォームには取引先担当者、サポート案件、営業案件、他のグリッドが含まれます。 取引先企業フォーム グリッドに表示されている行の一部は、直接的に取引先企業行に関連付けられます。他は、他の行と関連付けによって、間接に関連付けられます。 対照的に、ロールアップ列の集計は、ロールアップ列定義で明示的に定義されている直接的な関連付けのみが使用されます。 他の関係は考慮されません。 動作の違いを説明するために、次の例を見てみましょう。

  1. 取引先企業 A1 には取引先責任者 P1 がいます。 サポート案件 C1 は取引先企業 A1 に関連付けられ (C1 顧客列 = A1)、サポート案件 C2 は取引先担当者の P1 に関連付けられています (C2 顧客列 = P1)。
  2. A1 行の 取引先企業 フォームの サポート案件 は、2 つのサポート案件、C1 と C2 を表示します。
  3. サポート案件の合計数という取引先企業テーブルのロールアップ列は、取引先企業に関連付けられたサポート案件に使用されます。
  4. 取引先企業ロールアップ列定義で、取引先企業と顧客間関係があるサポート案件を指定します。 集計後、サポート案件の合計数は 1 になります。(サポート案件 C1) サポート案件 C2 は、取引先企業ではなく取引先担当者と直接関連付けられており、取引先企業ロールアップ列定義で明示的に定義できないため、合計に含まれません。 そのため、ロールアップの操作から戻されるサポート案件の合計数は、サポート案件 グリッドで示されるサポート案件の件数と一致しません。

参照

列を作成、編集する
計算列を定義する
コードを使用した数式列、計算列、ロールアップ列
日時の列の動作と形式
階層的に関連するデータの定義とクエリ

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。