EN

IMPACT LAB

インパクトラボ

Salesforce 様々な入力規則設定

Salesforce ではオブジェクトの項目に対して様々な入力規則を設定することができます。この記事では知っていると便利な入力規則についてご紹介します。

正規表現を使って判定する

数式にてREGEX関数を使うことで正規表現による入力値チェック(Validation)が可能です。数式のサンプルを幾つか列記します。

なお、数式内のtarget_filed__cは入力規則の設定対象項目のAPI参照名です。適宜、設定対象にしたい項目のAPI参照名に読み替えてください。

サンプル1: 半角カタカナのみで構成されているか?

NOT ( REGEX( target_field__c, “^[ヲ-゚ー ]+$” ) )

少しややこしいですが、入力規則の数式ではTRUE を返した場合にエラーがあると判定されるので、NOTでTRUE/FALSEを反転させています。

サンプル2: 半角英数のみで構成されているか?

NOT ( REGEX( target_field__c, “^[a-zA-Z0-9]+$” ) )

サンプル3: 郵便番号のフォーマットは正しいか?

NOT ( REGEX( target_field__c, “^[0-9]{3}[-][0-9]{4}$” ) )

半角数字3桁-半角数字4桁のフォーマットになっているかチェックしています。

参考サイト

form用正規表現判定/備忘 – Qiita
全角かどうか、半角カナかどうかチェック – Qiita

選択リストの入力チェック

選択リストである項目の値のチェックはISPICKVAL関数を使います。
次の数式はターゲットの項目の値が未選択「–なし–」になっている場合にエラーと判定する数式です。

ISPICKVAL( target_field__c, ” )

レコードタイプの判定

特定のレコードタイプの時だけValidationを有効にするにはRecordType.Nameを使います。

次の数式はレコードタイプの値が「1. 新規顧客」の時のみ、target_field__cへの入力が半角カタカナで構成されているかどうかを判定する数式です。

IF ( RecordType.Name == ‘1. 新規顧客’, NOT ( REGEX( target_field__c, “^[ヲ-゚ー ]+$” ) ), FALSE)

レコードタイプが「1. 新規顧客」ではない。つまり、IFの判定がFALSEの場合は常にFALSEを返してエラー判定されないようにしています。

入力があった時だけValidationを有効にする

未入力を許可し、入力があった時だけにValidationを有効にするには次のようにLEN関数を活用します。
次の数式はtarget_field__cの項目に入力があった時のみ(LENは入力値の長さを返す)半角カタカナのValidationを実行します。

IF(
LEN( target_field__c ) > 0,
NOT( REGEX( target_field__c, “^[ヲ-゚ー ]+$” ) ),
FALSE
)

このぐらいの複雑さになるとインデント(字下げ)があった方が良いですね。

全部混ぜてみると…

これらはすべて組み合わせて数式を構築できます。全部組み合わせてみます。

選択リスト項目[種別](API参照名をsyubetsu__cとします)が「個人情報入力」で、かつテキスト項目[フリガナ](API参照名をfurigana__cとします)に入力があった時のみ、レコードタイプが「1. 新規顧客」だったら入力値が半角カタカナで構成されているかチェックする数式は次の通りです。

IF (
 ISPICKVAL( syubetsu__c, ‘個人情報入力’ ),
 IF (
  LEN( furigana__c ) > 0,
  IF (
   RecordType.Name == ‘1. 新規顧客’,
   NOT ( REGEX( furigana__c, “^[ヲ-゚ー ]+$” )
  ),
  FALSE),
  FALSE
 ),
 FALSE
)

まとめ

Salesforce の様々な入力規則設定例をご紹介しました。正規表現(REGEX)とIFやLENなどをシンプルな要素を組み合わせることによってかなり複雑な入力規則も設定できることがおわかり頂けたかと思います。

正規表現に関する知識を深めることによってもっと入力規則の表現の幅が広がりますので、興味のある方はぜひ正規表現の勉強をしてみてください。

Salesforce活用の一助となれば幸いです。

 進地 崇裕 Linkedin

関連記事

もっと見る