Salesforceでは「入力規則」を使って入力時のチェックを行うことができますが、少し複雑なチェックを行う場合は「正規表現」を使えると便利ですよね。
もちろん、Salesforceでできます。
正規表現を使えば、
- 郵便番号や電話番号の形式
- 時刻の形式
- もっと複雑な特定の形式
でも自由に記述が可能です。
※基本的な正規表現については、【図解でわかりやすく】正規表現のまとめ その①基本メタキャラクタ編の記事を参照するとわかりやすいと思います。
入力規則でチェックする
Salesforceでは、各項目に対する入力チェックをカスタマイズすることができます。
通常は、管理コンソールからの入力規則でプログラムレスに定義することが可能です。
共通する定義の仕方は、下の画像のように、Salesforceの管理コンソールのオブジェクトの定義の「入力規則」に行き、
①入力規則の定義名を入力する。
適当な名前を入力しましょう。
②どんな条件の時にエラーとするのかを定義する。
少し紛らわしいですが、この条件でtrueになったときに、入力エラーとしてはじかれます。
③入力チェックエラー・メッセージを定義
入力チェックのエラーになった場合に、どのようなメッセージを表示するのかを定義します。
また、表示する場所も、複数項目のエラーをまとめて画面上部に表示するのか、それぞれの項目の横に表示するのかを選べます。
入力規則に使えるチェック表現Tipsまとめ(適宜追加予定)
ある一定のパターンにマッチしない文字を正規表現で防ぐ
正規表現には、REGEX関数を使うと便利です。下記は、『「Name1__c」項目が空欄で無い場合は、「99:99」の形で入力されること』というチェックになります。
AND( NOT( ISBLANK(Name1__c), NOT(REGEX( Name1__c, "[0-9]{2}:[0-9]{2}")) )
なお、もっと複雑なチェックや、複数項目の関連チェックの場合は、Apexトリガでチェックすると楽です。
やり方は記事「複雑なSalesforceの入力チェックをApexトリガで行う方法とサンプル」を参照してみてください。