※こちらは過去に公開していたブログの記事を修正、加筆したものです。
やりたいこと
取引先を親として、契約管理というカスタムオブジェクトと主従関係が作られています。
なお、契約管理には契約終了日という日時項目があります。
取引先(主)
∟契約管理(従)… 契約終了日(日付項目)の情報を持っている。取引先(主)のレコード上に、契約終了日を過ぎた契約管理(従)レコードの数を表示して、取引先ごとの契約終了日を超過した契約の数が確認できるようにしたいです。
対処法
契約終了日を過ぎたレコードの件数は、レポートやリストビューで絞り込むことで確認できます。しかしながら取引先レコード上に表示させたい、という要望には応えていません。
今回は「レコード上で確認」したいので、時間ベースのワークフローを使います。
時間ベースのワークフローで、一定の期間を過ぎたレコード件数を主オブジェクト上に積み上げ集計する方法
やりたいこと 再確認
取引先ごとの契約終了日を過ぎた契約管理(カスタムオブジェクト)レコードの件数を、取引先レコード上で確認したい。
取引先(主)… 契約終了日を過ぎた契約(契約管理)の数を表示したい。
∟契約管理(従)… 契約終了日(日付項目)の情報を持っている。
設定内容詳細
時間ベースのワークフローにて契約終了日を過ぎたときにチェックボックスにチェックを入れるよう設定し、取引先上に積み上げ集計を作成します。
手順(ポイントとなる手順のみ記載しています)1.契約が終了日を超えたときにチェックを入れる、チェックボックス型のカスタム項目を作成します。デフォルト値は「チェックなし」です。

2..ワークフロールールを作成します。
・評価条件:作成されたとき、およびその後基準を満たすように編集されたとき
・ルール条件:ここで特に条件を指定しない場合は、[数式の評価が true になる] True と入力します。

・タイムトリガ:[契約終了日]から「0日後」または「0時間後」と設定します。

3.項目自動更新を作成し、タイムトリガへ追加します。
・オブジェクト:契約管理
・更新する項目:1で作成したチェックボックス項目
・新規項目値の指定:True


起動させるときには、【有効化】をクリックします。
4.取引先に積み上げ集計項目を作成します。
・集計対象オブジェクト:契約管理
・積み上げ種別の選択:件数
・検索条件:[一定の条件を満たすレコードのみを計算に含める]
項目→ 1の項目、演算子→ 次の文字列と一致する、値→ True

これで、契約終了日を過ぎた契約管理レコードに自動的にチェックが入り、親となる取引先レコード上にその数が集計されます。

※ワークフローが機能しているかどうか(アクションが待機キューに入ったかどうかは、[設定]のホームタブでクイック検索ボックスに「時間ベースのワークフロー」と入力して表示される画面で、検索して確認することができます。
どうしてもレコード上に表示させたい!というときにお試しいただければと思います。
注意事項
・契約終了日が変更される可能性があるときなどは、ワークフローのルール条件を適宜調整してください。
・ワークフロー有効化前に作成および編集されたレコードには適用されません。
おまけ:数式項目を積み上げ集計で指定する方法では対応できない
Salesforceの仕様では、積み上げ集計の条件で数式項目を指定することができますが、数式の値が TODAY、ThisWeekなど、動的な要素で変動する場合には、条件に使用することができません。
契約管理のオブジェクトに、契約終了日を過ぎた場合にチェックが入る数式項目を TODAY関数を使って作成し、取引先ごとに契約終了日を迎えた契約数(契約管理のレコード件数)を積み上げ集計項目を作成しようとすると、積み上げ集計の検索条件で、作成した数式項目が選択できません。
再現手順
構成取引先(主)… 積み上げ集計で数式項目を条件として指定できない。
∟契約管理(従)… 契約終了日を過ぎた場合にチェックが入る数式項目をTODAY関数を使って作成。
数式項目の内容数式項目:IF ( TODAY() >= 契約終了日 , true, false)
手順1.契約が終了日を超えるとTRUEになる数式項目(前述の数式項目の内容)を、TODAY関数を使用して作成。
2.取引先に積み上げ集計項目を件数で作成。
・集計対象オブジェクト:契約管理
・積み上げ種別の選択:件数
・検索条件:[一定の条件を満たすレコードのみを計算に含める]を選択し、1で作成した項目を指定しようとしても、選択可能な項目として表示されません。
参考
◇ SALESFORCE ヘルプ >ドキュメント >コードではなくてクリックによる SALESFORCE の拡張
>積み上げ集計項目現在の日付や現在のユーザなど、自動的に作成される項目は、積み上げ集計項目で許可されていません。これには、DATEVALUE、NOW、および TODAY などのその場で値を計算する関数を含む数式項目が含まれます。関連オブジェクトの差し込み項目が含まれている数式項目も、積み上げ集計項目では許可されません。