最新の子レコードだけレポートに表示させたい (その2)
活動(行動、ToDo)の最新の子レコードのみのレポート作成方法の紹介です。
chirosuke
2021/11/24 17:24:39
その2では活動(行動、ToDo)の設定方法を紹介いたします。
主従関係、参照関係の子レコードのみのレポート作成方法について紹介している「最新の子レコードだけレポートに表示させたい(その1)」はこちら
基準とする日付を「最終活動日」としない場合は次で紹介するフローの追加設定が必要になります。
こちらのサンプルでは「取引先ごとの最終活動レコードのみのレポート」を設定します。
1.取引先ID(AccountId)を使用してクロスオブジェクト数式項目が作成できないため、活動レコード作成時や関連先、名前変更時に取引先IDの値を自動コピーするための取引先の参照項目を作成します。
※サンプルでは取引先ごとなのでAccountIdを使用しますが、要件が違う場合は関連先ID(WhatId)を使用するなど、適宜使用する項目を変更してください。

2.「最終活動日」と一致する場合にフラグを立てる数式項目を作成します。
サンプルでは「1.で作成した参照項目の最終活動日と日付(ActivityDate)が一致」で作成しました。
まだ先ですが、ワークフロールールとプロセスビルダーが廃止になるようなので、サンプルではフローでの設定で紹介します。
①[レコードトリガフロー] → [次へ]
②開始設定を以下のとおり設定します。
・オブジェクト:行動またはToDo
・フローをトリガする条件:レコードが作成または更新された
・エントリ条件を設定:[条件の要件] すべての条件に一致(AND)
[項目] AccoutId
[演算子] 変更済み
[値] True
・フローを最適化:アクションと関連レコード

③要素から[レコードを更新]をドラッグし以下のとおり設定します。
項目:1.で作成した参照項目
値:$Record > 取引先 ID
④[レコードを更新]要素をコネクタで接続し、保存します。

4.行動とToDoそれぞれ使用されている場合は、3.のオブジェクト違いのフローを作成します。
ちゃんと最終の活動レコードにフラグが立っていることが確認できました。

基本的な流れは参照関係のフローと同じです。
参照関係では、取得した子レコードの基準項目と親レコードの基準項目の比較のみでしたが、活動ではその前に「行動」と「ToDo」の基準となる項目を比較させ、条件に一致する方の値で親レコードの基準項目と比較させます。
サンプルでは「サンプル日」というカスタム項目を作成し、こちらの最大値(最新日)にフラグを立てるようにしてます。
完成したフローはこんな感じです

こちらも行動とToDoそれぞれ使用されている場合は、開始オブジェクト違いのフローを作成します。また、既存データがある場合はデータローダなどで親に作成した基準となる項目に値を挿入しておきます。
ちゃんと最大サンプル日のレコードにフラグが立っていることが確認できました。

「AAA通商株式会社」にサンプル日が「2021/11/15」の行動を新規作成し最大サンプル日が変更されるか確認してみます。
新規作成した行動にフラグが変更されました。

主従関係、参照関係の子レコードのみのレポート作成方法について紹介している「最新の子レコードだけレポートに表示させたい(その1)」はこちら
「最終活動日」を使用する設定方法
ここで紹介するのは、標準項目の「最終活動日」を使用する方法です。基準とする日付を「最終活動日」としない場合は次で紹介するフローの追加設定が必要になります。
| 最終活動日とは ・レコードに対して完了した ToDo の最後の期日。 ・レコードに対する行動の最後の日付。 詳細はこちら → [最終活動日] と [最終更新日] の違い |
1.取引先ID(AccountId)を使用してクロスオブジェクト数式項目が作成できないため、活動レコード作成時や関連先、名前変更時に取引先IDの値を自動コピーするための取引先の参照項目を作成します。
※サンプルでは取引先ごとなのでAccountIdを使用しますが、要件が違う場合は関連先ID(WhatId)を使用するなど、適宜使用する項目を変更してください。
2.「最終活動日」と一致する場合にフラグを立てる数式項目を作成します。
サンプルでは「1.で作成した参照項目の最終活動日と日付(ActivityDate)が一致」で作成しました。
数式:Account_lookup__r.LastActivityDate = ActivityDate3.上記1.で作成した項目に自動で値が挿入されるよう自動化プロセスを設定します。
まだ先ですが、ワークフロールールとプロセスビルダーが廃止になるようなので、サンプルではフローでの設定で紹介します。
①[レコードトリガフロー] → [次へ]
②開始設定を以下のとおり設定します。
・オブジェクト:行動またはToDo
・フローをトリガする条件:レコードが作成または更新された
・エントリ条件を設定:[条件の要件] すべての条件に一致(AND)
[項目] AccoutId
[演算子] 変更済み
[値] True
・フローを最適化:アクションと関連レコード
③要素から[レコードを更新]をドラッグし以下のとおり設定します。
項目:1.で作成した参照項目
値:$Record > 取引先 ID
④[レコードを更新]要素をコネクタで接続し、保存します。
4.行動とToDoそれぞれ使用されている場合は、3.のオブジェクト違いのフローを作成します。
5.既存データがある場合はデータローダなどで1.で作成した項目に値を挿入します。
| AccountIdを使用する場合は、データローダのエクスポートで以下のSOQLクエリを使用して AccountIdに値のある行動レコードだけをエクスポートすることができます。(アーカイブ済み除く) オブジェクトのEventをTaskにすればToDoもエクスポート可能です。 エクスポートしたCSVファイルをそのままUpdateファイルとして使用できます。項目のマッピングで 「AccountId」を1.で作成した参照項目にすれば既存レコードの一括更新が簡単になります。 SELECT ID, AccountId FROM Event WHERE AccountId != null |
【結果確認】
レポート結果を確認してみます。ちゃんと最終の活動レコードにフラグが立っていることが確認できました。
「最終活動日」以外使用の設定方法
基準とする項目を「最終活動日」以外にする場合は、行動とToDoレコードをそれぞれ比較するフローを設定します。基本的な流れは参照関係のフローと同じです。
参照関係では、取得した子レコードの基準項目と親レコードの基準項目の比較のみでしたが、活動ではその前に「行動」と「ToDo」の基準となる項目を比較させ、条件に一致する方の値で親レコードの基準項目と比較させます。
サンプルでは「サンプル日」というカスタム項目を作成し、こちらの最大値(最新日)にフラグを立てるようにしてます。
完成したフローはこんな感じです
こちらも行動とToDoそれぞれ使用されている場合は、開始オブジェクト違いのフローを作成します。また、既存データがある場合はデータローダなどで親に作成した基準となる項目に値を挿入しておきます。
【結果確認】
レポート結果を確認してみます。ちゃんと最大サンプル日のレコードにフラグが立っていることが確認できました。
「AAA通商株式会社」にサンプル日が「2021/11/15」の行動を新規作成し最大サンプル日が変更されるか確認してみます。
新規作成した行動にフラグが変更されました。
最後に
特にフローなどの自動化プロセスを設定する場合はSandboxで検証してから本番へ設定しましょう👷
コメント