※こちらは過去に公開していたブログからの移行記事です。
前提
主従関係オブジェクトがあり、従オブジェクトには日付項目があります。
やりたいこと
複数ある従レコードのうち、今日以降で直近の日付を持つものを、主レコードから確認したい。
対処法
色々な方法が考えられますが、今回は主レコード上に配置したリンクをクリックすると、該当の従レコード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ならばこの設定は不要です。どうしても絞り込んである関連レコードを見たい!というときにお試しください。