【Salesforce】テキスト項目で数字以外を入力したらエラーを表示させる方法
はじめに
こんにちは、CREFILの濱本です。今回はSalesforceの入力規則の使用例を1つ紹介したいと思います。
入力規則の使用例
年や年度をユーザに入力させたいとき、全角や半角が混ざって入力されるととても厄介ですよね。半角数字だけを入力させるにはどうしたらよいでしょうか。
データ型「数値」で項目を作ったらいいのでは?と思うと思うのですが数値型で作成すると以下の図のように桁を区切る記号(カンマ)が入ります。
画面に表示させないのであればこれでも問題ないですが、ユーザの目に触れるのであれば見栄えがよくないです。
そこで、データ型「テキスト」で項目を作成して入力規則で半角数字以外を入力できないように設定します。
作成手順および解説
1. テキスト項目を作って文字数を4桁に設定しておきます。
2. ”20”で始まる4桁の半角数字以外を入力したらエラーを表示する入力規則を設定します。
エラー条件数式
!REGEX( year_text__c ,"^[2][0][0-9]{2}" )
REGEX関数について
記述方法:REGEX(text,regex_text)
textで指定したテキスト項目をregex_textに記載した正規表現と比較し、一致する場合にTRUEを返します。
text は year_text__c
regex_text は "^[2][0][0-9]{2}"
正規表現 "^[2][0][0-9]{2}" について
^[2][0]
” ^ ” が直後の文字が行の先頭にあることを表現しています。
” [XXX] ” は 角括弧内の文字のいずれか1文字に一致することを表現できます。
” ^[2][0] ”は2が先頭でその次は0となります。
[0-9]{2}
” [0-9] ” はすべての数字を表現しています。
” {n} ” は直前の文字の数を指定することが可能です。
” [0-9]{2} ” は0から9の数字を2文字となります。
先頭に ” ! ” 論理否定演算子を付ける理由
入力規則のエラー条件数式は「この数式が True の場合には、エラーメッセージエリアで定義されたテキストを表示します」と記載があります。
REGEX関数はテキスト項目を正規表現と比較し一致する場合Trueを返すので、このままでは”20”で始まる4桁の半角数字を入力した場合、Trueが返ってくるのでエラーを表示することになります。TrueとFalseを逆にする必要があるため先頭に論理否定演算子の ” ! ” を付けています。
作成した入力規則の動作確認
添付図のように全角文字や4桁未満の数字、20で始まらない数字を入力して保存するとエラーが出て保存ができません。
以上です。少しでも参考になれば幸いです。