入力規則を作成してレコード登録を制御したい、
でも過去に作成したレコードは規則の対象外としたい!そんな時に役に立つ方法のご紹介です。
入力規則
Salesforceの入力規則は有効化すると過去分のレコードに対しても効力を発揮します。
例えば、ある項目を必須入力とするような入力規則を作成した場合、
過去に作成したレコードに対してもそのルールは適用され、
仮にそのレコードの該当項目が空白でレコード更新しようとすると入力必須のエラーが返されます。
これはこれで便利な時もあるのですが、
入力規則を有効化する以前のレコードは規則の対象外としたい場合もあるかと思います。
そんな時は入力規則内で特定の対象を除外する処理を記述する必要があります。
有効化以降に作成されたレコードを対象とする処理
ここでは取引先の「業種」項目を必須項目とする入力規則を作成します。
条件としては、
ISBLANK( TEXT(Industry) )
となり、「業種」が空白で作成、更新された場合にエラーが返されます。
ただ、このままだと過去に作成された取引先レコードにもこのルールが適応されます。
今回は、この入力規則の作成日以降に作成さらた取引先に対象を絞ります。
数式としては、以下のようになります。

入力規則作成以降に作成さらた取引先レコードを対象としたいので、
CreatedDate >= DATETIMEVALUE( 入力規則作成日)
となり、新規作成の時も入力規則を適用したいので
ISNEW()
をOR条件でつなぎます。

新規作成時はレコードに作成日がまだ付与されていない状態なのでこの条件が必要になります。
おわりに
入力規則は条件の指定の仕方次第でかなり細かく適用範囲を指定できます。
大雑把に適用してしまうと想定外のエラーにつながってしまうのでユーザの要望に合わせてカスタマイズしていきましょう。
終わりです。
コメント