入力規則のススメ~ユーザのライセンス種別で制限してみよう~

はじめに

こんにちは!株式会社オプトプランニングです。
Salesforce(Salesforce.com/セールスフォース・ドットコム、略してSFDC)であれこれやってみたことを書いていきます。

今回は入力規則について書いていこうと思います。
プロファイル・ユーザ・ロールの入力規則例は公式ヘルプに紹介されているので、ユーザのライセンス種別で制限する方法を紹介します。
こんなやり方もあるんだ~と参考になれば幸いです。

実際あった入力規則の盲点

入力規則を作成する際、プロファイルで制限する方法をよく見かけるため、最初はプロファイルで入力規則を作成していました。

その後、カスタムプロファイルを増やすために、影響調査を行う過程で「プロファイルを増やす=既存の入力規則の確認・修正・再テストが必要」なことに気づきました。

また、私が扱っている環境では複数のユーザライセンスが混在しおり、プロファイルではなくユーザのライセンス種別で入力規則を作成できるのではないかと気づきました。

今回紹介するユーザのライセンス種別で制限する入力規則は、単一のライセンスのみを使用している環境では利用機会がないかもしれないです。。。

ライセンス種別で入力規則を作るには

プロファイルで制限する場合、よく見かけるのがプロファイルの名前である「Profile.Name」を使用する例です。
ライセンス種別で制限する場合は、「UserType」を使用します。

ライセンス種別は、ユーザに割り当てられたライセンス種別を意味する「User.UserType」、ユーザに割り当てたプロファイルで指定しているライセンス種別を意味する「Profile.UserType」二つありますが、今回は「User.UserType」を使用する方法を紹介します。

「User.UserType」を「項目の挿入」を使用して入力する場合は、図1のように選択します。

図1 項目の挿入
図1 項目の挿入

SFDCでは様々なユーザライセンスがあるので、ライセンス種別に関して説明は割愛しますが、今回使用するライセンス種別と「UserType」名は以下です。

ライセンス種別 の名称UserType の名称
標準ユーザStandard

他の「UserType」について詳しく知りたい方はこちらを参考にしてください。

ライセンスで制限する入力規則を作ってみた

ライセンスで制限する入力規則を実際に作成してみようと思います。
環境はTrailhead、オブジェクトは「取引先」を使用し、入力規則の作成やレコードの新規登録は「標準ユーザ」ライセンスを持つユーザで行います!

まずは、以下のような2つの入力規則を作ってみます。

  • 項目「評価」を未選択で保存するとエラーが発生し、項目「評価」にエラーメッセージを表示
  • 項目「会社形態」を未選択で保存するとエラーが発生し、項目「会社形態」にエラーメッセージを表示

エラー条件数式は以下です。
「[数式 サンプル] 入力規則により項目の入力を必須とする数式」で紹介されているサンプル数式を活用しました)

ISPICKVAL(Rating , '')
ISPICKVAL(Ownership , '')

その他の設定については図2を参照してください。
エラー条件式とエラー表示場所以外は項目「会社形態」の設定も同様なので割愛します。

この入力規則を有効化して、取引先を新規登録しようとすると図3のようなエラーが表示されます。
(必須項目が未入力状態だと入力規則の判定はされないので、必須項目に適当な文字列を入力しています)

図2 項目「評価」の入力規則
図2 項目「評価」の入力規則
図3 入力規則で項目「評価」「会社形態」でエラー発生
図3 入力規則で項目「評価」「会社形態」でエラー発生

先ほど作成した入力規則の確認ができたところで、項目「評価」の入力規則を以下のように変更してみようと思います。

  • ライセンス種別が「標準ユーザ」以外のユーザが項目「評価」を未選択で保存するとエラーが発生し、項目「評価」にエラーメッセージを表示

変更後のエラー条件式は以下です。

AND(
ISPICKVAL(Rating , '') ,
NOT(ISPICKVAL( $User.UserType , 'Standard'))
)

「UserType」のデータ型は選択リスト型である点は注意が必要です。
「Profile.Name」のデータ型はテキスト型なので、演算子での比較が可能ですが、「UserType」のデータ型は選択リスト型なのでこのままでは比較ができず「ISPICKVAL()」関数を使用してデータを比較する必要があります。
「ISPICKVAL()」の詳細はこちらを参照してください。

図4が項目「評価」の入力規則変更後です。

入力規則を変更後、取引先を新規登録しようとすると図5のようなエラーが表示されます。

ライセンス種別が「標準ユーザ」のユーザは、項目「評価」を未入力でも入力規則にひっかからないことが分かります。

無事にライセンス種別で制限する入力規則ができました!!

図4 ライセンス種別で制限した入力規則例
図4 ライセンス種別で制限した入力規則例
図5 入力規則で「会社形態」のみエラー
図5 入力規則で「会社形態」のみエラー

あとがき

Salesforceではライセンス種別がたくさん用意されているので、お使いの環境下でどんなライセンス種別があるか知っておくといいかもしれません!

また、入力規則を作成する際はライセンスで制限をかける場合もプロファイルで制限をかける場合も、作りたい入力規則が誰に対して制限したいものなのかを明確にしておくといいと思います。

今回はユーザのライセンス種別での制限方法を紹介しましたが、ロールを使用する方法などを含め、プロファイル以外で制限をする方法も知っておくといいと思います。

それでは、またお会いしましょう!!