レポート&カスタムリンク:従レコードのうち直近かつ今日以降の日付をワンクリックで確認する

レポート&カスタムリンク:従レコードのうち直近かつ今日以降の日付をワンクリックで確認する

関連するレコードの中から、特定の条件にあてはまるレコードをすぐ確認できるようにしたい、というご要望はよくいただきますが、すぐに解決できるときもあれば、複雑になるときもあります。
レポート&カスタムリンク:従レコードのうち直近かつ今日以降の日付をワンクリックで確認する
2
レポート&カスタムリンク:従レコードのうち直近かつ今日以降の日付をワンクリックで確認する
Admin
2021/06/25 11:12:15
※こちらは過去に公開していたブログからの移行記事です。

前提

主従関係オブジェクトがあり、従オブジェクトには日付項目があります。



やりたいこと

複数ある従レコードのうち、今日以降で直近の日付を持つものを、主レコードから確認したい。


対処法

色々な方法が考えられますが、今回は主レコード上に配置したリンクをクリックすると、該当の従レコード1件のみが表示されたレポートに遷移するように設定してみます。


設定の概要

①従レコードで今日以降の日付であることを確認できる項目を作成。

※後述しますが、レポートの条件だけで日付項目が今日以降のレコードを絞り込むとエラーになるため、従レコード上で判別させます。

②主従両方の情報が確認できるレポートを作成し、絞り込みの条件を付ける。

・①の項目を利用して今日以降の日付
・行制限で1行だけ表示(日付項目を昇順で並び替え)
・取引先は動的に選択(リンクをクリックしたレコードになるよう設定)

③主レコードにカスタムボタンまたはリンクを作成。

・パラメータで主レコードに紐づく従レコードの②のレポート実行画面へ遷移するよう設定します。

設定手順詳細

①従レコードで今日以降の日付であることを確認できる項目を作成。

従オブジェクトにカスタム数式項目を作成。日付項目が今日以降であればtrue、それ以外はfalseとします。
 項目名:今日以降 ※任意
 API参照名:FromToday ※任意
 戻り値:チェックボックス
 数式:IF (DateField__c - TODAY() >= 0, true, false)
    ※DateField__cが日付項目です。
    ※日付項目から今日を引いた数が0以上であれば今日以降と見なしています。




②主従両方のレコードが確認できるレポートを作成し、絞り込みの条件を付ける。

 a.レポートを Lightningで作成します。
 表示する項目:主レコード名、従レコード名、日付項目、
        今日以降(1で作成したチェックボックス項目)
 検索条件:すべての主オブジェクト、作成日が常時※適宜設定してください。



b.「編集:(Salesforce Classic)」をクリックして条件を追加。
※「行制限」は通常の「編集」では使用できません。
 画面上部の条件「追加」をクリックして次の条件を追加します。
 なお条件ロジックは「かつ」ですべてに一致するよう設定します。
 ・主オブジェクトID|次の文字列と一致する|""
 ・今日以降(チェックボックス項目)|次の文字列と一致する|True
 「追加」の右の▼をクリックして、「行制限」を選択し、
 ・「行を1列に制限し、昇順順に日付項目で並び替える」
と設定します。


c.レポートを保存します。


③主レコードにカスタムリンクを作成。

 a.主オブジェクトでカスタムリンクを作成します。
 設定>オブジェクトマネージャ>主オブジェクト>ボタン、リンク、およびアクション

表示ラベル:直近の日付 ※任意
 名前:CustomLink ※任意
 表示の種類:詳細ページリンク
 動作:新規ウィンドウに表示
 内容のソース:URL
 リンク: /lightning/r/Report/00XX0000000XXXXXXX/view?fv0={!MasterObject__c.Id}
※「00XX0000000XXXXXXX」の部分は、作成したレポートのIDを入れます。
 レポートIDはレポート実行画面のURLの「/Report/」以降の18桁です。
※{!MasterObject__c.Id}の部分は、差し込み項目で主オブジェクトのIDを挿入します。


b.主オブジェクトのレイアウトにカスタムリンクを追加
 設定>オブジェクトマネージャ>主オブジェクト>ページレイアウト
 該当のレイアウトで、カスタムリンクのセクションに 3-aで作成したカスタムリンクを配置します。


直近のレコードを確認する操作手順

①主レコードの詳細画面を表示して、カスタムリンクをクリックします。


②別ウィンドウでレポートの画面が開き、該当するレコードを確認します。


レポート上で相対日付を使用しないわけ

レポートビルダーでは、日付の検索条件に相対日付(今日、明日、今月など)が使用できるので、シンプルに「日付項目 >= 今日」で今日以降の日付のレコードを絞り込むことができます。また、「行レベルの数式」を使ってレポート上で今日以降であるか判別させることも可能です。
しかしながら、レポート上で今日以降を判別させると、レポート実行画面でエラーとなり結果が正常に表示されませんでした。おそらく、ヘルプにあったこちらの制限にかかっていると思われます。

◇ Salesforce > ヘルプ > Lightning Experienceでの URLパラメータを介したレポートの絞り込み

URL を介して条件を設定する場合は、次の制限事項に注意してください。
・URL パラメータからの編集がサポートされているのは項目条件のみです。
標準条件 (ロール階層条件、範囲条件、日付条件)、クロス条件、行制限条件はサポートされていません。


ひとこと

関連リストを並べ替えたり、レポートから確認する運用でOKならばこの設定は不要です。どうしても絞り込んである関連レコードを見たい!というときにお試しください。
gilde tech(for Salesforce)」に入会しませんか?
登録すると、「gilde tech」に掲載されているSalesforceのノウハウを全部閲覧できるだけでなく、自分が知っている知識を発信し、他の会員と交流することもできます。
またSalesforceの知識習得に役立つイベント情報も得ることができます。
是非ここで得た知識を業務に活かしてください!
2
コメント