レコードを新規作成する際にデフォルト値を入れる方法は多々あります。この記事で紹介するのは通常デフォルト値を設定できない項目に対して、カスタムボタンを使用してデフォルト値を設定する方法です。
課題:商談作成の際、「商談名(Name)」にデフォルト値を設定したい
商談作成時に商談名を特定のロジックで全社統一したい場合があります。
例えば、「取引先名+作成日+”商談”」などです。レコードトリガーフローを使用すれば、この商談を保存したときに「○○株式会社240420商談」という商談名に書き換えることが出来ます。
ただし、これをおこなうためには商談名に「あ」などと適当なテキストを入れて保存する必要があります。
具体的には、商談の商談名は自動採番ではなくテキスト型のName項目であり、デフォルト値の設定ができない標準項目であり必須項目です。必ず何かしら入力しないと保存することが出来ないのです。
この仕様のせいで、全社のユーザーに対して『商談名は「あ」と入れたらそのあと書き換えられますからね』とアナウンスするの、嫌すぎないですか??
なお、取引先などの別オブジェクトからの商談作成であればアクションのデフォルト値を入れられます。しかし都度アクションに項目を追加しないといけなかったり、なかなかそこをメインで使う運用が難しかったりします。したがって今回は商談オブジェクトを開いてレコードを新規作成する場合の話であるものとします。
解決策:カスタムボタンでレコード作成時にデフォルト項目値を設定する
解決策としては、「カスタムボタンでレコード作成時にデフォルト項目値を設定する」が今のところの最適解なのではないかと考えています。
つまり、商談のタブを開いてリストビューが表示されている画面で通常は「新規」を押してレコード作成しますが、その「新規」ボタンを取ってしまって、カスタムボタンをに差し替えます。そのカスタムボタンから新規レコード作成すると、商談名にデフォルト値が差し込まれた状態のレコード作成画面が立ち上がる、という形に持っていきます。
下図の左側の赤枠がデフォルトの新規ボタン、右側がカスタムボタンで作成したものです。
下図ではカスタムボタンで商談を立ち上げると、textという文字が入っているのが確認できます。
冒頭の例だとここに取引先名を入れたいのですが、取引先名はこれから入力するので入れられません。なので何らかのダミーテキストを差し込んでおいて、保存時にレコードトリガーで更新になるかと思います。
「自動入力。入力不可」などとしておけばユーザーも違和感ないでしょう。
カスタムボタンでレコード作成時にデフォルト項目値を設定する方法
まずはカスタムボタンを作っていきます。オブジェクトマネージャーのメニューから「ボタン、リンク、およびアクション」を選択します。「新規ボタンまたはリンク」ボタンを押します。
下図の画面が開きます。表示ラベルと名前を入力します。
次に、以下の画像のように設定します。
次にURLを作っていきます。ちなみに「カスタムボタンの例: デフォルト項目値を含むレコード作成ページ」というHelp記事がありますが、このまま設定しても思ったようになりません。このHelpに書いてあるのはこのようなものです。
/lightning/o/Account/new?defaultFieldValues=
Name={!URLENCODE(Account.Name)},
OwnerId={!Account.OwnerId},
AccountNumber={!URLENCODE(Account.AccountNumber)},
NumberOfEmployees=35000,
CustomCheckbox__c={!IF(Account.SomeCheckbox__c, true, false)}
最初、上記のURLを試してみたのですがスペースが入っていたりしてうまくいきませんでした。以下のURLであればそのまま張り付けて使うことが出来ます。
/lightning/o/Opportunity/new?defaultFieldValues=
Name={!URLENCODE('text')}
ただし、やってみると分かるのですが裏側が真っ白になってしまいます。そのまま商談を最後まで作りきってしまえばいいのですが、途中で×を押して戻ろうとすると、この真っ白な画面に遷移してしまいます。また、レコードタイプが2つ以上ある場合にレコードタイプ選択画面が出てきません。
最終的に、以下のURLでうまくいきました。レコードタイプ選択画面が出てきますし、×を押して戻ったとしても「最近参照した商談」のページに戻るので、UI的に違和感ないです。
/lightning/o/Opportunity/new?defaultFieldValues=
Name={!URLENCODE('text')}
&useRecordTypeCheck=1
&backgroundContext=%2Flightning%2Fo%2FOpportunity%2Flist%3FfilterName%3DRecent
ボタンをリストビューに表示する方法
念のため、ボタンを表示する方法も記載しておきます。
オブジェクトマネージャーのサイドメニューから「リストビューボタンレイアウト」を選択します。
下図の画面が開きますので、カスタムボタンセクションで、使用するボタンを選択します。
なお、上部の「標準ボタン」セクションのチェックを外せば、「新規」ボタンなどの標準ボタンを非表示にすることも出来ます。
まとめ
カスタムボタンでレコード作成時にデフォルト項目値を設定する方法を、実際の運用で使えそうな形で紹介しました。今回の件、地味に苦しんだ経験があったので、解決できたときかなり感動しました。ぜひ皆様にもこの感動を味わってもらえれば幸いです。