DLRSとは?
下記のようなことができるツール
・参照項目の値の積み上げ集計
・フィルタ条件付きの積み上げ集計(例:受注した商談の金額だけを、取引先で積み上げ集計)
インストール方法
Salesforce.org MetaDeployからインストール
オープンソースのプロジェクトなので、こちらのGitHubでコードが全て公開されています。
インストール時の考慮事項
・Professional Editionの場合、計算モード(Calculation Mode)を必ずProcess Builderに設定する必要がある。この場合、子レコードの削除は積み上げ集計再計算の対象とならない。
・積み上げ集計を行いたい親オブジェクト・子オブジェクトの双方に関して、ビジネスロジックや入力規則その他と干渉しないかどうか、Apex Test Classの実行などによるチェック推奨(※とりわけ、親オブジェクト側にトリガが設定されている場合は、再帰的に動作する可能性があるため、要注意)
・「スケジュール(Scheduled)」モードと比べて、「リアルタイム(Realtime)」モードでの実行は、プラットフォームの制限に引っかかる可能性が高くなる。
・事実上、全ユーザに権限セットの割り当てが必要(※自動化したければ、「The Permissioner」などのApp Exchangeを使う)
制約事項
・Apexで動いているので、ガバナ制限が適用される。
・単一レコードに5万件以上の子レコードが紐づいている場合は、計算不可
・「子レコード」および「フィルタ条件」に利用する項目については、パフォーマンス向上の観点から、インデックス項目化推奨
・数式項目の値を積み上げは、「スケジュール(Scheduled)」モードでのみ可能(※「リアルタイム(Realtime)」モードで動作させると不正な値になる可能性あり。)
初期設定
DLRSの設定をするユーザ:権限セット「Lookup Rollup Summaries – Configure Rollups」を割り当てる
その他のユーザ: 権限セット「Lookup Rollup Summaries – Process Rollups」を割り当てる
DLRSアプリのメニュー紹介
Lookup Rollup Summaries Tools :「積み上げ集計計算のエラーの発生有無」とか「アップデートに伴う推奨アクション」とか「パフォーマンス向上のための推奨アクション」とかを自動で表示してくれる。
Manage Lookup Rollup Summaries:積み上げ集計の設定を実際に行う場所。
Lookup Rollup Summary Logs:積み上げ集計計算時のエラーのログの詳細が見れる。
計算モードについて
リアルタイム(Reatime):子オブジェクトのApex Triggerベースで動作。
スケジュール(Scheduled):Scheduled Apexベースで動作。
デベロッパー(Developer):DLRS Apex Actionを(DLRSが用意しているApex Triggerではなく)自身のApex Triggerから呼び出すときに使う。
プロセスビルダー(Process Builder):DLRS Apex Actionをプロセスビルダーから呼び出す時に使う。
設定
①指示に従って、情報を埋めていき「Active」のチェックボックスを外した状態で「Save」をクリック。
②画面右上に新しく出てきた「Manage Child Trigger」からChild TriggerをDeploy
③元の画面に戻り、改めて「Active」チェックボックスを付けた状態で「Save」をクリック
■例(成約した商談だけを対象に「金額」を取引先の「累計受注金額」項目に集計)