Salesforceのカスタマイズにおいてよく利用する入力規則の設定を紹介します。
なお、入力規則の設定可能な数は契約のエディションによって異なります。
現在設定可能な数については最後の参考サイトにて記載されていますが、
その点は注意してください。
正規表現を使用して入力規則を設定します。
例:テキスト項目 NumAlphabet__c に対して、半角英数字のみの入力規則を設定する
NOT( REGEX( NumAlphabet__c , “^[A-Za-z0-9]*$” ) )
^[A-Za-z0-9]*$
上記の正規表現ですが、意味としては左から順に
先頭、半角大文字小文字の英数字が0文字以上、末尾
となります。
半角英数字以外の文字があれば、(NOT)により入力規則に合致しエラーと判定されることになります。「0文字の場合も含めなければ、必須入力項目化してしまう」ので、その点は注意しましょう。
なお、この例で表現している正規表現はSalesforce独自の正規表現というわけではなく、
一般的な正規表現のみを利用した形式としているので、覚えておくとよいです。
- 参考(外部リンク)
- Wikipedia:正規表現
取引先項目名に「㈱」などの機種依存文字を入力できないようにする
REGEX( Name , “.*㈱.*” )
ちなみにこの入力規則ですが、「Salesforceへ入力できるのであれば問題ないのではないか?」と思われる方がいるかもしれません。
今後Salesforceでしか運用しないといったことであればそれでも構いませんが、将来のことはわかりません。また、システム間でデータの連携を行うといったケースは多く、後になってから意図しない問題が発生すると後々面倒になります。
なので、すぐに問題が発生するわけではないのですが、データの入力時点で問題の混入原因となりうるものは排除しておくことをおすすめいたします。
- 参考(外部リンク)
- Wikipedia:機種依存文字
一部の項目を更新しようとした際、特定の項目が未入力だった場合はエラーとする
AND (
ISPICKVAL( StageName, “見積提示” ),
ISBLANK( QuoteDate__c )
)
エラーとなることを確認します。
日付項目の値を後日に延期することを禁止する
AND(
ISCHANGED( CloseDate ),
CloseDate > PRIORVALUE( CloseDate )
)
エラーとなることを確認します。
新規登録時のみ入力可能とし、内容の更新は禁止する(データ内の一部項目のみ)
AND(
NOT( ISBLANK( PRIORVALUE( outerID__c ))),
PRIORVALUE( outerID__c )<>outerID__c
)
エラーとなることを確認します。
- 特定の担当者のみ内容を更新できなくしたいが、それ以外の担当者は更新可能としない
- データローダでしか内容を更新しない
新規登録時のみ入力可能とし、内容を更新しようとするとエラーとする(特定のデータのみ、全項目の内容更新を禁止する)
レコードタイプを設定することにより、更新不可とします。
例:商談データの予算と実績データが存在し、このうち予算データは更新不可とする
まずは以下のように予算データを判別するためのレコードタイプを設定します。
次に、以下の入力規則を設定します。
AND (
RecordType.DeveloperName = “RecordTypePlan”,
NOT(ISNEW())
)
設定したレコードタイプで予算管理データを新規登録した後、更新時にエラーとなることを確認します。
万が一該当データの修正が必要となった場合は、いったん該当データを削除し登録しなおすかシステム管理者に「一時的に入力規則を無効化する」ことを依頼した上で修正することとなります。