本日のTips!は、取引先名や商談名など標準項目の(Name)にデフォルト値を表示するという方法のご紹介となります。
※今回はLightning Experience でのやり方をご紹介しますが、 Salesforce Classic Editionでも可能です。
Salesforce Classic Editionの場合は、URLの指定方法が異なりますのでご注意ください。
取引先や商談を新規登録する場合、登録画面を開いたときに標準項目のName項目に対してデフォルト値をセットするための方法となります。
Name項目にデフォルト値をセットする方法は複数あり、一般的にはトリガーやワークフロールールなどを使って、レコード登録時にセットする方法を用いると思います。
しかし、今回の要望はあくまで標準画面で登録するときに新規ボタンをクリックすると、デフォルト値を差し込んだ状態で新規登録画面を表示する必要があるため、トリガーやワークフロールールでは対応できません。
画面のフローを使えばある意味対応できますが。もしくは完全に新規の画面開発をすれば当然実現できます。
1.商談の新規登録時に商談名(Name)にデフォルト値を表示してみよう
今回は、商談の機能を例として説明していきます。
商談画面から新規商談の登録をする際に、商談のName項目に対して、作成日(実行したシステム日付)をデフォルト表示してみたいと思います。
簡単な流れ
- 商談オブジェクトに新規ボタンを作成
- 新規ボタンを商談のリストビューに配置
- 商談を新規作成し、デフォルト値が表示されるか確認
では、一つ一つ手順の内容を解説していきたいと思います。
1.商談オブジェクトに新規ボタンを作成
1.Salesforceにログインして、[オブジェクトマネージャ]で商談を検索します。
商談オブジェクトの画面から、[新規ボタンまたはリンク]ボタンをクリックします。
画像をクリックすると拡大できます。
2.続いて、ボタンの内容を以下の通り設定します。
参考
- 表示ラベル:ボタンのラベル名を入力
- 名前:API名をアルファベットで入力
- 表示の種類:リストボタン ※チェックボックスの表示はどちらでもよい
- 動作:現在のウインドウにサイドバー付きで表示
- 内容のソース:URL
- 内容:以下の内容をセットしてください
- ※urlのnew以降に[?defaultFieldValues=]を指定することでデフォルト値を設定することができます。商談名(Name)であれば、?defaultFieldValues=Name=(デフォルト値)のように指定します。また複数指定する場合はカンマ[,]区切りしてください。?defaultFieldValues=Name=(デフォルト値),Status=(デフォルト値)
code
/lightning/o/Opportunity/new?defaultFieldValues=Name={!TODAY()}
上記のパラメータ指定では、Nameに対してTODAY()を使って、システム日付を設定しています。
2.新規ボタンを商談のリストビューに配置
続いて、作成したボタンをリストビューに表示されるように設定します。
設定手順は次の通り。
まず、商談オブジェクトの[Salesforce Classic]の検索レイアウトで、レイアウトが[リストビュー]の▼ボタンをクリックし、編集メニューを実行します。
続いて、検索レイアウトの編集画面で、先ほど作成したカスタムボタンが表示されて利用可能となっているので、これを選択したボタンに追加して保存します。
3.商談を新規作成し、デフォルト値が表示されるか確認
最後に作成したボタンを使って、デフォルト値が設定されるかをチェックしていきます。
まず、商談のタブをクリックして、商談のリストビューを開きます。
すると先ほど追加したボタン[商談名デフォルトセット]が表示されているので、このボタンをクリックして新規作成画面を表示します。
新規商談の画面が表示され、商談名にデフォルト値がセットされていることを確認します。※!{TODAY()}の場合、実行日が自動セットされます。
以上で設定から検証まで完了となります。
設定して気づいた方もいると思いますが、標準の新規ボタンが表示されたままの場合、ユーザの方は間違えて標準の新規ボタンをクリックしてしまい、
デフォルト値がセットされていないと勘違いしてしまう場合もあります。そのため、不要なボタンはレイアウトから削除しておくことをお勧めします。
また、記事を書いている時点では、デフォルトで用意されているリストビューについては、標準の新規ボタンを隠すことができないようになっていたため、カスタムのリストビューを作成して、そちらをピン止めしてご利用いただくようにしてます。
まとめ
いかがでしたでしょうか。説明した手順でデフォルト値の設定はうまくいきましたか。
今回は一番シンプルなパターンでの設定しましが。実際には商談の場合レコードタイプを使うことが多いと思いますが、レコードタイプを利用している場合、今回の設定だけでは対応が難しいと思います。
レコードタイプを利用しているオブジェクトの場合には、レコードタイプを選択するためのパラメータを指定する必要があります。
パラメータ:useRecordTypeCheck
この値で2を設定すると、レコードタイプを選択する画面が最初に表示され、レコードタイプ選択後にデフォルト指定した値が表示されます。
今回のサンプルの例では、以下のように指定します。
code
/lightning/o/Opportunity/new?defaultFieldValues=Name={!TODAY()}&useRecordTypeCheck=2
また、レコードタイプ毎にボタンを用意するということであれば、useRecordTypeCheck=1とし、ReocrdTypeを直接していするようなやり方も可能です。
※レコードタイプを指定しないとデフォルトのレコードタイプが自動的に指定されますので、注意してください
レコードタイプのパラメータの指定方法:recordTypeId=レコードタイプID
さらに、レコードタイプ名をデフォルト設定したいというような場合は、Name=レコードタイプ名としたいところですが、このやり方はできません。
お客様としては、毎回都度入力する手間を省略したいという要望だとすると、いったん仮の値をNameに登録(システムで自動セットなどの文言)をしておき、保存時にワークフローなどで自動更新するということで対応することができます。
上記方法は、レコードの新規作成(new)の時に利用できますが、コピーの場合などは、コピーされた値で上書きされてしまうため注意が必要となります。
コピーボタンのパラメータを使って、コピー後の値に対してデフォルト値を設定するという方法はうまくいかないので注意してください。
画面のフロー(Flow)を作成して対応するということもできると思いますが、要件次第でどのように実現するのか、最適な方法を検討してみてください。
今回紹介した内容を理解してぜひ実際のプロジェクトで活用してみてください。
それでは、また。