こんにちは、アンダーソンです。
今回は標準機能の一つである、入力規則について初歩的なところから説明していきたいと思います。
簡単な入力規則の例もいくつかおいておくのでぜひ参考にしてみてください。
入力規則とは
入力規則は、オブジェクトごとに設定するユーザのレコードへの入力を制限する標準機能の一つです。
決めないといけないのは下記の4点です。
- 規則名
- 規則のロジック
- エラーメッセージ
- エラー出力箇所
作成前にはどんな規則名でどうした時にエラーが出て、エラーの内容をどこに出してあげるとユーザビリティの向上につながるのかを意識した上で作っていきます。
作成してみましょう!
まずオブジェクトマネージャ(クラシックの場合は標準オブジェクトは各オブジェクトの入力規則から、カスタムオブジェクトは)いきましょう。

先ほどの4つのポイントをそれぞれ書いていますのでみてみてください。
①ルール名
まず名前の付け方は組織によって命名規則があると思いますのでしっかり決めておきましょう。
英語にする必要はありません笑
今回は未来日付は入れれないよというものを作っていきます。
②数式エディタ
ここは数式エディタです。
数式項目と同じように参照項目を使ったオブジェクトを超えた項目を見ることもできます。
今回は未来日付を入れることができないということでDatetime型の日付に入れられた内容が今日よりも大きい場合という数式を入力しています。
数式エディタの内容がTrueの場合にエラーが返ってくるという仕組みなので覚えておきましょう。例えば下記のような書き方もできるということです。
IF ( DATEVALUE(Datatime__c) > TODAY(),True,False )
あんまり意味ないですけどねw
でもこうしたIF文を使った数式も使えるので覚えておきましょう。
③エラーメッセージ
ここには上記の数式エディタがTrueの場合に表示されるエラーメッセージを表記しておきます。
今回であれば未来日付を選択することができませんを入れてますが、
選択ではなく、入力ですね。申し訳ないです。
④表示場所
エラーの表示場所はページ最上部か項目に対してつけることができます。
下記が同じエラーですが表示場所を変えてみた例です。

左がページ最上部、右が項目です。
未来日付を〜の文が違うところに表示されていると思います。
ユーザビリティを考えてその都度出す箇所を変えてあげることができます。
いろんなパターンを作ってみよう
入力規則はApexを持ってしても突破することができない規則です。
しっかりとした規則を作って綺麗なデータを保持する組織を作っていきたいものですね。
以下にはサンプルをいくつか用意したのでぜひ参考にしてみてください。
選択リストが一定の値の場合テキスト項目は入力必須
IF(ISPICKVAL( PickList__c , 'みかん') , ISBLANK(Text__c) ,false)
特定のプロファイルの人以外は日付項目は変更できない
AND(
$Profile.Name <> 'システム管理者',
ISCHANGED(Datetime__c)
)
特定のロール以外はテキスト項目は入力必須
AND(
$UserRole.Name <> 'CEO',
ISBLANK( Text__c ))
)
簡単ですがぜひ参考にしてみてください。
以前に書いたこちらの記事もどうぞ。
コメント