入力規則を用いることで、ユーザーが入力するデータが事前に定義した基準を満たしているか自動的にチェックし、誤りを防ぐことが出来ます。本記事では、入力規則の基本概念、活用シーン、設定方法について詳しく解説します。
入力規則とは
入力規則は、レコードを保存する際に、事前に定義された条件と入力内容を自動的に照らし合わせます。そして条件を満たさない場合にエラーを表示し、レコードの保存をブロックする機能です。これにより、データの入力間違えや入力漏れを防ぐことが出来ます。
似た機能に必須入力がありますが、必須入力は条件指定が出来ません。ただ単に項目が入力されているか否かを判定し、入力されていなかったら保存をブロックするだけです。
一方で入力規則は、例えば商談フェーズが「最終調整中」以上になった時に「支払方法」が空欄だったら保存をブロックする、というように、細かな条件を指定することが出来ます。
入力規則に設定できる条件は空欄か否か、という単純なものだけでなく、Salesforceのカスタム項目などで使用できる「数式」を使用して柔軟に作成できます。
入力規則の活用シーン
入力規則を使用する目的は大きく分けて2つあり、両方の用途で使用する場合も多くあります。
特定の条件下で必ず入力してほしい項目に入力させる
ユーザーが必ず自分で考えたり思い出して入力しないといけない項目に関しては、フローなどのオートメーションで自動的に埋めるわけにはいきません。また、フローの起動条件として入力させたい項目がある場合などに、入力規則を使用して強制的に埋めてもらう、というシーンが考えられます。
特定の縛りに沿って入力させる
例えば失注した際に「再提案予定日」という未来の日付を入れさせたい場合に、過去日付を入れられてしまうと、次回フォローが出来ません。必ず現在の日付よりも未来の日付を入力しないとブロックされる、というパターンが考えられます。
入力規則の設定方法
入力規則を設定したいオブジェクトのオブジェクトマネージャーを開きます。
左側サイドメニューから、新規ボタンを押します。
ルール名を記入します。英数字記号のみ可能で、日本語は使えません。
「有効」チェックボックスがありますが、デフォルトで有効になっていますので、すぐに使用しない場合は無効にしておきましょう。
エラーを出す場合の条件数式を記述します。ここで作成した数式に「合致したら」エラーになります。
例えば、特定の項目が空欄だったらエラーにしたい場合は、「ISBLANK()」を使用します。ISBLANK()関数は、特定の項目が空欄だったらTRUE(つまり合致している)を返します。したがって、空欄だったら数式に合致するのでエラーが返ってきて、保存がブロックされます。
数式についてはこちらで詳しく解説しています。
最後に、エラーメッセージを入力して保存すれば完了です。
「エラー表示場所」ではエラーメッセージを表示する場所を選択できます。
「エラー表示場所」で「ページの最上位へ」を選択すると下図のようになります。
「エラー表示場所」で「項目」を選択すると該当項目の部分にエラーメッセージが出ます。
入力規則の注意点
入力規則は、データローダーやフローの更新の際も評価されます。むやみに入力規則を設定しまくると、データメンテの際に自分が絶望することになってしまいます。
入力規則を回避する方法は工夫次第でいくつかアイデアがあります。例えば、入力規則の数式は更新しようとしているユーザーのプロファイルやロールを参照できます。NOT($Profile.Name=”システム管理者”)を条件に入れることで、システム管理者だけは更新できるようになります。
もしくは、オブジェクトに「入力規則無視」のようなカスタム項目を先に作っておき、ページレイアウトや項目レベルセキュリティでシステム管理者以外は入力できなくしておきます。その後、入力規則で「入力規則無視」がTRUEだったらエラーを出さないよう数式に書き加えるという方法も考えられます。データ一括更新の際はまず先に「入力規則無視」を更新してから、データ更新をして、最後にまたチェックを外す運用なども若干面倒ですが確実そうです。
まとめ
入力規則は、データの入力間違えや入力漏れを防ぐために必須の機能です。数式を知っていれば簡単に作成できますので、ぜひ使いこなしていきましょう。
補足ですが、数式を作る際にREGEX関数を使うことで、制御の幅がぐっと広がります。REGEX関数とはSalesforce以外のシステムでも一般的に使われる、正規表現によるチェック機能を指します。テキスト項目に記号は入れさせない、など細かな制御が出来ます。google検索で沢山出てきますので必要に応じて確認してみてください。