Salesforceで今月の商談オブジェクトの金額を取引先に積み上げ集計で表示させる方法を紹介します。
積み上げ集計項目は、一定の子オブジェクトのレコードに対してのみ集計することは可能
(例;特定のチェックボックスにチェックがある商談レコードの金額のみ集計 は可能)
ですが、今月の商談のみを絞って集計することはできないため、一ひねり必要です。
今回は数ある方法の中でフローを用いた実装を行おうと思います。
前提条件として今回の実装方法の
メリット:標準機能でコード開発不要で容易に作成可能
デメリット:リアルタイムで集計は不可(今回の場合作成および更新時に最大24時間のタイムラグがあります)
(ただし削除時はリアルタイムで反映されます)
さあ、やってみましょう。
ステップ1 商談にカスタム項目(チェックボックス型)作成
(ポイント ステップ1で作成した項目は後ほどフローでチェックを付けたりチェックを外したりするための項目です。ですのでフロー以外でチェックを付けたりチェックを外したりさせないため、ページレイアウトに表示するなどはしないでください)
ステップ2
取引先に積み上げ集計項目作成。
ステップ1で作成した項目がチェック付きのときのみ商談金額が集計されるように設定をします
ステップ3
商談に数式項目(チェックボックス型)作成
数式は
Month(CloseDate) = MONTH(TODAY())
です。
この数式により、今月の完了予定日の場合、チェックボックスにチェックが入ります。
ステップ4 フロー作成
オブジェクトは「商談」のすべてのレコードの更新にします
「レコードを更新」を2つ作成します。
1つ目の「レコードを更新」はステップ3で作成した数式項目にチェックがついている場合(今月の場合)
ステップ2で作成した項目をチェック付きに更新します。
2つ目の「レコードを更新」はステップ3で作成した数式項目にチェックがついていない場合(今月ではない場合)ステップ2で作成した項目をチェックなしに更新します。
これにより、ステップ2で作成した取引先の積み上げ集計項目には今月の完了予定日の商談の金額が反映されます
もうひと頑張りープロセスビルダー作成
上記のフローでは最大24時間の誤差が生まれます。
誤差を少しでもなくすために「商談レコード作成時および更新時」に起動するプロセスビルダーを作成してみるのもいいかもしれませんね。
プロセスビルダーの起動条件は下記数式となります
(完了予定日が今月の場合 の数式です)
MONTH([Opportunity].CloseDate ) = MONTH(TODAY())
更新条件として
ステップ2で作成した項目をチェック付きに更新します。
残りは、商談更新時に完了予定日が今月ではない場合、ステップ2で作成した項目をチェックを外して更新する設定も作成したほうがいいかもしれませんね。