Salesforceで入力規則を作成して数式にプロファイルを設定するための注意点です
例:商談オブジェクトのフェーズを「Closed Lost」(失注)にさせない。しかし、プロファイル「システム管理者」は「Closed Lost」(失注)にできる
よくある数式はこちらです
「数式」
AND(
$Profile.Name <>"システム管理者",
ISPICKVAL(
StageName,"Closed Lost"))
しかしながら、この数式ではうまく動かないことがございます。
動かない原因 「組織情報」が日本語ではない
入力規則で使われるプロファイル名は「組織情報」の言語のデフォルト値になります
例えばこちらの組織情報の「言語のデフォルト値」が「英語」(English)の場合、数式はこのようになります
「数式」
AND(
$Profile.Name <>"System Administrator",
ISPICKVAL(
StageName,"Closed Lost"))
参考ヘルプ:組織のデフォルト言語設定と $Profile.Name の値の関係について
では、言語のデフォルト値に関わらずに入力規則をしたい場合、どうしましょうか
設定方法1 プロファイルIDを入力規則に設定する
プロファイルIDを入力規則に組み込みます
なお、プロファイルIDは上部画面のようにプロファイルから確認できます。
数式は以下となります
「数式」
AND(
$Profile.Id <>"00e5h000003RzF1",
ISPICKVAL(
StageName,"Closed Lost"))
しかしながら直接IDを打つのはあまりよろしくないので、設定方法2を紹介します
設定方法2 カスタム権限を作成しプロファイルで割り当てる
次にご紹介するのはカスタム権限を作成しプロファイルにカスタム権限を割り当て、入力規則にそのカスタム権限を割り当てる方法です
ステップ1 カスタム権限を作成
ステップ2 プロファイルにカスタム権限を追加
ステップ3 カスタム権限を組み込んだ入力規則の数式作成
「数式」
AND(NOT($Permission.Opportunity),
ISPICKVAL(
StageName,"Closed Lost"))
これでカスタム権限を追加したプロファイルに対して入力規則を組み込みことができます