tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:関連レコードコンポーネントで商談に取引先の項目を表示するを試してみました

関連レコードコンポーネントをつかって商談に取引先の項目表示を試してみました。取引先の説明項目は自由入力のための項目で、補足や注意事項などユーザがメモしたい情報が登録されます。

f:id:tyoshikawa1106:20190829093555p:plain


商談のページに取引先の説明項目が表示されると商談のページのみで作業を進められて助かるという要望がありました。


最初に思いついたのは数式をつかった方法です。ですが数式項目はロングテキストエリア型の項目の値を参照することができません。取引先の説明項目はロングテキスト型の項目のため、数式による方法は実現不可でした。


数式対応は不可だったため検索してみたところワークフロールールで値を持ってくる方法が見つかりましたが、更新などのアクションが無いと更新処理が行えずに情報が古いままとなってしまう可能性があるので今回は見送り。


次に思いついたのはVisualforceページの埋め込みです。Lightningコンポーネントと違う部分で詳細ページレイアウト内の任意の位置に差し込むことができます。・・・が高さは固定値となるため見栄えが少し崩れる問題がありました。
f:id:tyoshikawa1106:20190829095010p:plain


どうしたものかなと悩んでいるところにTwitterで関連レコードコンポーネントをつかった方法を教えてもらいました。
f:id:tyoshikawa1106:20190829095816p:plain:w300


関連レコードで表示する場合は取引先のアクションを用意する必要があります。
f:id:tyoshikawa1106:20190829100100p:plain


レイアウトの設定で説明項目のみ表示させます。
f:id:tyoshikawa1106:20190829100140p:plain


アクションの準備ができたら商談のLightningページ設定で関連レコードコンポーネントを追加します。
f:id:tyoshikawa1106:20190829100456p:plain


ヘッダーの表示ラベルは任意のタイトルをつけたいときに入力します。参照項目は取引先を選択、更新アクションは先ほど作成した取引先の更新アクションを指定します。作成アクションは特に気にせずで大丈夫です。



これで商談の詳細ページに取引先の説明項目を表示できました。一つの取引先に複数の商談を作成したときにどの商談ページを開いていても共通の補足情報を表示できます。
f:id:tyoshikawa1106:20190829101001p:plain

関連レコードコンポーネント利用時の注意点

説明項目の文章量への考慮

関連レコードコンポーネントで説明項目を表示する場合、内容に応じて表示高さを自動調整してくれます。そのため文字の途中までしか表示されなかったり、続きはスクロールして確認というようなことは発生しないのですが、説明の値の行数が多くなってしまうとその下にある情報に気づきづらくなります。基本的には5〜10行ぐらいで管理するのがいいと思いますが、どうしてもながくなってしまう場合は別タブ表示などの対応を行ったほうがいいと思います。
f:id:tyoshikawa1106:20190829101529p:plain

一般ユーザへの編集権限の考慮

上記の方法で設定を行った場合、関連レコードコンポーネントのメニューには「参照」と「削除」の二種類が表示されていると思います。「参照」を選択すると参照元(この場合は取引先レコード)のページへ移動できます。
f:id:tyoshikawa1106:20190829101835p:plain


注意が必要なのは削除の方です。削除という表記ですが実態は取引先レコードとの関連付けを解除する操作になります。通常の編集ページでは商談レコードの取引先参照項目は必須項目となりますが、この部分から解除する場合は必須チェックの判定対象外として操作を行うことができます。なので知らぬ間に取引先と紐付かない商談が作成される可能性がでてきます。(補足として関連付けがクリアされるだけで取引先データ自体が削除されるわけではないため、一般ユーザの削除権限を無効化してもこの削除メニューは利用可能となってしまいます。)
f:id:tyoshikawa1106:20190829102206p:plain


この問題の対応方法は簡単で入力規則で対応できます。
f:id:tyoshikawa1106:20190829102731p:plain

f:id:tyoshikawa1106:20190829102828p:plain


ユーザには削除のメニューの利用は不要ですと伝えて基本的には操作しないルールとしつつ、誤って選択された場合は入力規則でブロックするという方法でシステムの整合性を担保できると思います。


関連レコードコンポーネントの利用に関してはこんな感じでした。説明項目など一部の情報のみ表示するという方法は今まで使ったことがなかったのですが非常に便利だと思います。鉛筆アイコンからデータの編集は可能ですが、そちらはプロファイルの編集権限で制御できると思います。(基本的に取引先で編集OKだったら編集できても問題はず。)