カスタムのアクションやリンク、リストボタン、操作性を向上するために欠かせませんが、なかなか複雑かつ覚えにくい(私だけでしょうか……)仕様に苦戦されている方も多いのではないでしょうか。
今日はカスタムのリストボタン作成のときに、最後に確認してほしいナレッジです。
ちょっといい例が思いつかなかったのですが、大枠で理解していただいて適宜調整いただければと思います。
課題
Lightningでオブジェクトのカスタムボタン(詳細ボタンやリストボタン)を作成したとき、詳細ボタンの場合はキャンセルや【×】マークを押下すると元のレコードページに戻ることができるのですが、リストボタンの場合は元のレコードページに戻らず、白いページが表示されてしまいます。
元のページに戻るようにしたいです。
リストボタンをクリックして
【キャンセル】をクリックするか右上の【×】をクリックすると
真っ白!!
タブをクリックするなどで通常の画面にもどることができますが、できることならリストボタンをクリックする前に戻りたい!
対処法
この事象は、URLにキャンセルの場合のURLを指定していないことが原因で起こります。
Lightningの場合、戻りURLを指定したいときは、URLの最後に下記を追記します。
「&backgroundContext="URL"」
特定のオブジェクトのレコードの画面に戻りたいときは、このように設定します。
「&backgroundContext="/lightning/r/Object/{!Object.Id}/view"」
例
「
主従関係の子オブジェクトを作成するアクションは主従関係の親からしか作成できない…。」で挙げた例のように、カスタムボタンを作成しますが、今回はリストボタンです。
プロジェクト管理オブジェクト(ProjectManagement__c)で、デフォルト値を設定した費用レコード新規作成のリストボタンを作成し、商談の関連リスト「プロジェクト管理」のボタンとして配置します。
(なかなか複雑な要件になっていますが、あまり気にしないでください😅)
デフォルト値を使用したリストボタンを作成し、戻りURLとして下記を加えることで商談レコードの画面に戻ることができます。
「&backgroundContext="/lightning/r/Opportunity/{!Opportunity.Id}/view"」
※もしうまくいかない場合は、次のように変換してみてください。
①=以下の""を削除
②/を%2F
(Classicでは形式が異なるので「retURL」で指定してください。)
今回の例では、このようなボタンを作りました。
/lightning/o/CostM__c/new?defaultFieldValues=
Name={!Opportunity.Name},
Opportunity__c={!Opportunity.Id},
&backgroundContext=%2Flightning%2Fr%2FOpportunity%2F{!Opportunity.Id }%2Fview重要なのが最後の太字の部分です。今回は商談レコードの関連リスト上で操作しているので、商談の画面を指定しています。他のオブジェクトの場合は、他のオブジェクトのAPI参照名が「Opportunity」のところに入ります。
末尾に追加すると
URLを調整して、またリストボタンをクリックします。
すでに背景から違う……!
【キャンセル】をクリックすると
元々開いていた商談レコードのページです。ちゃんと帰ってこれました。
ひとこと
リストボタンを使用する必要性が出たとき、最後の仕上げとして頭の片隅に入れてもらえたらいいなと思っています。
関連記事
主従関係の子オブジェクトを作成するアクションは主従関係の親からしか作成できない…。カスタムリンクでデフォルト値指定を試してみたけれど商談レコードのリンクから、商談に紐づく取引先のレポートを開く取引先を Google検索するボタンを作る