2022/04/15

Salesforce rollupとは?その概要や設定のサンプル、注意点も紹介していきます

 
  

Salesforceのrollupとは?

Salesforceにおけるrollupとは「積み上げ集計項目」とも呼ばれていて、関連リストにある関連レコードなどから計算します。 数式項目では、単一レコードの項目を使用して値が計算されますが、積み上げ集計項目では、関連リストのレコードなど関連レコードの集合から値が計算でき、主レコードに関連する従レコードの数を集計したり、従レコード内の項目の合計、最小値、最大値の計算などができます。 また、積み上げ集計項目で計算できる項目の種類ですが、計算の種類によって違います。積み上げ集計項目で参照する項目の種類は、変更できない場合がありますので注意が必要です。 例:積み上げの種類として[合計]を選んだ場合、数値、通貨、パーセント項目が使用できます。 例:積み上げの種類として[最大]または[最小]を選んだ場合は、数値、通過、パーセント、日付/時間項目が使用できます。 Salesforceでのrollupは、使用できる集計にいくつか種類があるので下記の表にまとめてみました。
種類 説明
COUNT 関連レコード件数を合計します。
SUM [集計する項目]オプションで選択した項目の値を集計します。数値、通過、パーセントのみ利用可能
最小 全ての直接関連レコードの[集計する項目]オプションで選択した項目の最小値を表示します。数値、通過、パーセント、日付、時間項目のみ利用可能
最大 全ての直接関連レコードの[集計する項目]オプションで選択した項目の最大値を表示します。数値、通過、パーセント、日付、時間項目のみ利用可能

実装時の注意点

Salesforceでのrollupは、以下の項目に注意しながら実装を進めましょう。 ・エラーになる数式項目がいずれかの検索条件として使用されると、その検索条件に一致する結果は返されないので、積み上げ集計の計算で#Error!となる数式の項目を使用しないでください。 例:積み上げ集計検索条件の数式項目が10だとして、2つのレコードにエラーがあって、そのうち1つのレコードの該当項目に10の値が含まれます。この場合の積み上げ集計項目は10の値をもつレコードだけを集計します。 ・Salesforceは項目の値を再計算しないため、積み上げ集計項目で子レコードを削除しても再計算しないので値を手動で再計算するには、積み上げ集計項目の編集ページでこの項目の一括再計算オプションを選択しましょう。 ・積み上げ集計条件の項目例で使用できないものは、ロングテキストエリア、複数選択リスト項目、説明項目、最終活動日などシステム項目、クロスオブジェクト数式項目、および参照項目です。 ・自動採番項目は、積み上げ集計項目で集計する項目として使用できません。 ・オブジェクトで積み上げ集計項目を作成した後は、そのオブジェクトの主従関係を参照関係に変換することはできません。 ・積み上げ集計項目は、取引を開始したリードのリード項目の対応付けには使用できません。 ・積み上げ集計項目検索条件で、今月など、相対値を使用することはできません。同じく積み上げ集計項目の制限として、NOW()やTODAY()など、自動的に日時の値を計算する件数が含まれている数式項目を条件項目として参照することもできないので、レポートでの集計をしましょう。

Salesforceでのrollup利用中の疑問点

Salesforceでrollupの実装中に起こりがちなトラブルと、その解決法をまとめてみました。 実装前にさっと見ておくと、実装時に役立つので目を通しておきましょう。 ・割り当てルールが適応できない場合は、組み上げ集計項目の値を変更することで適応できます。組み上げ集計項目が割り当てルールの条件の一部である場合、レコードを再割り当てする必要があるかどうかを見るために、その項目の新しい値が使用されます。 ・組み上げ集計項目の値の計算は、影響を受けるレコード件数などで、最長30分かかるので、反映されない場合はしばらく待ってみましょう。 ・日付の組み上げ集計項目では、うるう年ではない年の2月29日など、無効な値が生じる可能性がある項目も作成されてしまいます。値が無効になる場合、再計算はされないので集計値が変更されるまで無効な組み上げ集計項目アイコンが付けられています。 ・チームでマルチ通貨を使用している場合、主レコードの通過によって組み上げ集計項目の通貨が決まるようになっています。 例:主レコードと従レコードの通貨が異なる場合は、従レコードの値は主レコードの通過に換算されます。 ・換算レートを変更すると、組み上げ計算項目の再計算がトリガされます。マルチ通過を使用している場合は、APIから換算レートを変更すると、まだ24時間経過していない関連ジョブにより変更ができない場合があるので、[設定]の[通貨の管理]から換算レートを変更しましょう。 ・チームで高度な通貨管理を有効にしている場合、通貨積み上げ集計項目が取引先に関するもので商談値を集計するものや、商談に関するものでカスタムオブジェクト値を集計するものであっても無効になるので注意してください。 ・Salesforceは、あるレコードを保存することによって関連するレコードが無効になるような場合、そのレコードを保存することができなくなっています。 例:マスタレコードに積み上げ集計項目値が100より大きいことを要求する入力規制があるとします。ユーザーが関連する子レコードに変更を加えて100を超える値を入力した場合は、ユーザーはそのレコードを保存できないようになっています。 ・削除済のレコードを参照項目が参照されている場合、デフォルトでもSalesforceは参照項目の値をクリアします。もしくはレコードが参照関係にある場合は、削除されないように選択することもできます。 ・メタデータAPIを使用して積み上げ集計項目を削除した場合は、その項目はゴミ箱に保存されません。リリースオプションをtrueに設定していなくても削除されてしまうので、バックアップをとっておきましょう。

Salesforceでrollupを使ったサマリーフィールドを作成してみよう

ロールアップサマリーフィールドは、詳細レコードのレコード値に基づいて、マスターレコードの値を自動的に表示できるものです。 Travel Approvalオブジェクトに関する経費項目からの経費の合計額を、自動的に合計するフィールドを作成します。Salesforceには、この機能を提供するロールアップサマリーフィールドと呼ばれる機能があります。 まずは、Travel ApprovalオブジェクトからFields&Relationshipsを選んだら、[新規]をクリックし、ロールアップサマリーデータ型を選んで、[次へ]をクリックします。 フィールドの詳細に次の値を入力してください。 フィールドラベル : Total Expenses フィールド名 : Total_Expenses (これは、[フィールドラベル]フィールドからタブで移動すると自動的に設定されます) 入力が完了したら[次へ]をクリックしてください。 ロールアップ計算を構成していきます。 要求されたオブジェクト : 経費項目 ロールアップタイプ : SUM 集計するフィールド : 金額 フィルタ基準 : 全てのレコードを計算に含める必要がある 設定が完了したら[next]で保存します。 これで、Travel Approvalオブジェクトに、経費を自動的に合計する新しいフィールドが完成しました。 興味のある方は、是非他の集計もご自身でやってみてください。 ※より分かりやすくするため、日本語で表記しています。

Salesforceでrollupを活用しよう!

今回は、Salesforceでのrollup(積み上げ集計項目)について紹介しました。 Salesforceでrollupを利用して、効率よくデータを集計して開発や運用に役立てていきましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】