結論:まずこれだけ覚える
ロールアップサマリーフィールドは、詳細(子)側レコードの値を親(マスタ)側に集計して表示する仕組みですが、これを使うには2つのオブジェクトがマスタ詳細関係で結ばれている必要があります。参照(ルックアップ)関係だけでは、標準のロールアップサマリーフィールドは作成できません。
ロールアップサマリーフィールドとは
親レコードに、関連する子レコードの値(合計・件数・最大値・最小値など)を自動的に計算して表示する項目です。例えば、取引先に関連する商談の合計金額を、取引先側のカスタム項目として表示する、といった使い方をします。
なぜマスタ詳細関係が必要なのか
マスタ詳細関係では、子レコードのライフサイクルや共有設定が親に強く結びついています(親を削除すると子も削除される、子のアクセス権が親に連動する、など)。ロールアップサマリーフィールドは、この強い結びつきを前提に、子の値を親側にリアルタイムで反映する仕組みとして提供されています。 参照(ルックアップ)関係は、2つのオブジェクトの結びつきが緩く、親のライフサイクルや共有設定に子が連動しません。そのため、参照関係だけの状態では標準のロールアップサマリーフィールドを作成できません。
参照関係しかない場合の代替手段
- 対象オブジェクトの関係を、要件が許すのであればマスタ詳細関係に変更する
- 親側にカスタムの集計用項目を作成し、フローやワークフロールール、Apexトリガーなどの自動化で値を更新する
- レポートやダッシュボードで、都度の集計値を確認する
試験での判別ポイント
- 「オブジェクトAとオブジェクトBの間でロールアップサマリーフィールドを作りたい」という設問が出たら、まずその2つがマスタ詳細関係かどうかを確認しましょう。
- 参照関係しかない場合、選択肢に「ロールアップサマリーフィールドを作成する」とあっても、それだけでは正解になりません。カスタム項目+自動化のような代替パターンが正解になることがあります。
出典(Salesforce公式)
- Roll-Up Summary Field — 「詳細レコードは、マスタ詳細関係を通じてマスタと関連付けられている必要がある」ことを明記しています。
- Create a Roll-Up Summary Field — マスタ詳細関係が存在しない場合は、先にマスタ詳細関係を作成する必要があることを示しています。