入力規則はバリデーションチェックで使用することが多いですが、それ以外にも使用できる便利な機能です。
本記事では、Salesforceを運用する上でよく聞く下記2つのお悩みについて、入力規則で解決する方法をご紹介することで、入力規則の有用性を感じていただければと思います。
- 郵便番号を半角、ハイフンなしで入力してほしい
- フェーズがクローズ済みの商談はシステム管理者のみ変更可能としたい
そもそも入力規則とは
入力規則は、レコードの作成または更新時に入力されたデータを確認し、指定の基準を満たす場合のみレコードを保存できるようにする機能です。入力した値が有効でない場合にエラーメッセージを表示します。この規則を使用することで、データ品質を向上させることができます。
入力規則を採用するメリット
入力規則で実現可能なことは、Apexトリガーやフローのカスタムエラー(Winter’24で追加された機能)でも実現可能です。他の機能と比較した際の入力規則を採用するメリットとして、設定に必要な知識が少ないこととメンテナンスしやすいことが挙げられます。
具体的に、Apexトリガーの実装は、コーディング知識が必要で、標準機能でないためバージョンアップで不具合が発生する可能性が高くなります。
また、フローの実装では、コーディングほど要求される知識は多くないですが、ある程度の知識が必要となります。
入力規則の設定手順
本記事は入力規則の設定方法を解説するものではないため、設定手順を簡単にご紹介すると、下記の4ステップとなります。
①[設定] > [オブジェクトマネージャ]から対象オブジェクトの画面を開く
②オブジェクト設定画面の左サイドバーの[入力規則]から入力規則の新規作成画面を開く
③入力規則の設定画面の下記項目を設定する
- ルール名
- 有効
- 説明
- エラー条件式
- エラーメッセージ
- エラー表示場所
④対象オブジェクトのレコード画面でテストする
それでは、冒頭で挙げた2点のお悩みについて、入力規則で解決する方法をご紹介いたします。
郵便番号を半角、ハイフンなしで入力してほしい
今回はリードの郵便番号を対象として、リードの設定画面から下記の入力規則を作成します。
郵便番号が7桁の数値以外の場合にエラーとするためのエラー条件は下記となります。
エラー条件
NOT(
AND(
LEN(PostalCode) = 7,
REGEX(PostalCode, "[0-9]+" )
)
)
補足
- [PostalCode]は郵便番号の項目名
- [LEN(text)]はtextの文字数を返す数式
- [REGEX(Text, RegEx_Text)] はtextが正規表現 RegEx_Text に一致するとTRUE を返し、一致しない場合はFALSE を返す数式
- [[0-9]+]は半角数字を表す正規表現
- 続いて、テストを実施します。
郵便番号に7桁の半角数字以外を入力して保存しようとすると、下記のようにエラーメッセージが表示されます。
今回は一例として、郵便番号に7桁の全角数字[1234567]を入力しています。
バリデーションチェックとして入力規則を使用する例として、上記をご紹介させていただきました。
次は、バリデーションチェック以外で入力規則を使用する方法をご紹介いたします。
フェーズがクローズ済みの商談はシステム管理者のみ変更可能としたい
商談の設定画面から下記の入力規則を作成します。
フェーズがクローズしている際、システム管理者以外が編集した場合にエラーとするためのエラー条件は下記となります。
エラー条件
AND(
$Profile.Name != "システム管理者",
PRIORVALUE(IsClosed)
)
補足
- [IsClosed]は完了フラグの項目名で、フェーズがクローズになるとTRUEを返す
- [PRIORVALUE(field)]はfieldの変更前の値を返す数式
続いて、テストを実施します。
システム管理者以外のユーザがクローズした商談を編集して保存しようとすると、下記のようにエラーメッセージが表示されます。
今回は一例として、システム管理者以外のユーザでフェーズが[Closed Won]の商談の金額を編集しています。
バリデーションチェック以外で入力規則を使用する方法をご紹介させていただきました。
上記では、商談フェーズとプロファイルで制限していますが、それ以外にもロールやレコードタイプで制限することが可能です。
入力規則を設定する際の注意点
ここまで、入力規則の設定しやすさなどのメリットを挙げましたが、注意点を2つ挙げたいと思います。
①設定したエラーメッセージは、必須項目、データ形式の判定後の表示となる
こちらを留意しないと、テストをする際にエラーメッセージが表示されない可能性があります。
②設定する上での制限が1つのオブジェクトに対してということだけなので、自由度高く作成できてしまう
こちらは、設定数が少ない場合は問題となりません。しかし、数が多くなると設定内容の一部が重複して、うまく制限できなくなるなどの問題が発生する可能性があります。そのため、数が多くなったタイミングで設定する粒度をそろえたり、ドキュメント作成をして一元管理するなど保守性を考慮する必要があります。
まとめ
いかがでしたか。
入力規則は、数式や正規表現の知識が必要な場合がありますが、誰でも簡単に設定できる便利な機能であることをお分かりいただけたかと思います。
数式に関しては、バージョンアップで便利な数式が増えていっているので、是非確認していただければと思います。
また、今回は入力規則の有用性をお伝えする内容となっているため、実行順序などの技術的な考慮事項を記載しておりません。
詳細を知りたい方や、入力規則以外にもSalesforce関連でご相談がありましたらご連絡ください。
〜はじめてSalesoforceを操作する方も安心〜
Salesforceシステム管理者トレーニング
システム管理者の不安を解消するお手伝いをいたします!
Salesforceシステム管理者向けトレーニングでは、レベル別にトレーニングを設定しているのでご自身のレベルに合ったトレーニングを選択し受講いただくことができます。
トレーニングで利用するサンプルマニュアルもご提供しています。リンクよりトレーニングの内容をご確認ください!