0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

システム管理者以外、特定の項目の変更を不可とする入力規則を作成する。

Last updated at Posted at 2024-04-12

1.システム管理者であることを確認する

プロファイルを利用する場合、名称でなく、IDを利用する(名称変更されたり言語的な影響が出るため)

$Profile.Id <>"システム管理者のプロファイルID"

カスタム権限を作成しプロファイルで割り当てる方法もある。hogehogeはカスタム権限名

AND(NOT($Permission.hogehoge)

参考記事

2.条件設定→新規行でないこと を判定する

NOT(ISNEW())

3.該当項目が以前空白で今は入力値が存在すること を判定する

NOT(ISBLANK(PRIORVALUE( Email__c )))

4.該当項目に変更があったかどうか判定する。

ISCHANGED( Email__c )

これらをAND条件で結合すると、

AND(
    $Profile.Id <>"システム管理者のプロファイルID",
  NOT(ISNEW()),
  NOT(ISBLANK(PRIORVALUE( Email__c )))
  ISCHANGED( Email__c )
)

または

AND(
    AND(NOT($Permission.hogehoge),
  NOT(ISNEW()),
  NOT(ISBLANK(PRIORVALUE( Email__c )))
  ISCHANGED( Email__c )
)

ISNEWは新規レコードの作成中に数式が実行されているかどうかを確認し、実行中の場合は TRUE を返す。既存のレコードが更新中の場合は、FALSE を返す。この場合、既存のレコード更新に当たる場合ストップをかけたいので、NOTで囲んでTRUEを返すようにする。
PRIORVALUEは、項目の前の値を返す関数である。更新前が空白かどうかを確認するためだ。これがないと空白の場合でも、更新することができなくなる。

参考記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?