問題
ある開発者が、WithSharingキーワードを使用するVisualforceページとApexコントローラを作成しました。このページは営業マネージャーが使用し、実行中の営業マネージャーに報告する営業担当者が所有する取引先のみを表示する必要があります。取引先に対する組織全体の共有は非公開に設定されています。開発者が取るべき追加の手順はどれですか。
- 1つのプロファイル、1つの権限セット、1つのロールを作成する
- 2つのプロファイル、1つの権限セット、1つのロールを作成する
- 1つのプロファイル、1つの権限セット、2つのロールを作成する
- 1つのプロファイル、2つの権限セット、1つのロールを作成する
正解
- 1つのプロファイル、1つの権限セット、1つのロールを作成する
- 2つのプロファイル、1つの権限セット、1つのロールを作成する
- 1つのプロファイル、1つの権限セット、2つのロールを作成する
- 1つのプロファイル、2つの権限セット、1つのロールを作成する
解説
このシナリオでは、営業マネージャーは直属の営業担当者が所有する取引先のみを表示する必要があります。取引先の組織全体の共有設定が非公開であるため、この要件を満たすためにはロール階層を適切に設定する必要があります。
Salesforceのロール階層は、組織内のユーザー間でのデータの可視性を制御するためのものです。ロール階層は、組織の構造や役職の階層を反映することができます。ロール階層の主な目的は、上位のロールに所属するユーザーが、下位のロールに所属するユーザーが所有するレコードを表示できるようにすることです。この要件を満たすためには、ロール階層を使用して営業マネージャーと営業担当者の関係を明確にする必要があります。
- なぜ2つのロールが必要か:
- 営業担当者のロール: このロールに所属するユーザー(営業担当者)が所有する取引先を管理します。
- 営業マネージャーのロール: このロールは、営業担当者のロールの上位に配置されます。これにより、営業マネージャーは直属の営業担当者が所有する取引先を表示できるようになります。
- プロファイルや権限セットだけでは不十分な理由:
- プロファイルや権限セットは、ユーザーがどのオブジェクトや項目にアクセスできるか、どのような操作(読み取り、編集、削除など)ができるかを制御します。しかし、これらは特定のユーザーが所有するレコードの可視性を制御するものではありません。
- ロール階層は、ユーザー間のデータの可視性を制御するためのものです。したがって、このシナリオの要件を満たすためには、ロール階層を適切に設定する必要があります。
このように、ロール階層を使用することで、特定のユーザーが所有するレコードの可視性を制御し、組織のデータアクセスの要件を正確に反映することができます。
それぞれの選択肢の理由について説明します。
□ 1つのプロファイル、1つの権限セット、1つのロールを作成する
これは不正解です。この設定では、営業マネージャーと営業担当者間の階層的な関係を表現できません。営業マネージャーが自分に報告する営業担当者のデータのみを見るためには、ロール階層が必要です。
□ 2つのプロファイル、1つの権限セット、1つのロールを作成する
これは不正解です。この設定では、ロール階層が適切に設定されていないため、営業マネージャーが自分に報告する営業担当者の取引先データにアクセスすることができません。プロファイルはオブジェクトや項目など基本的なアクセス権を定義しますが、ロール階層がないと、階層内でのデータ共有とアクセスは実現不可能です。
□ 1つのプロファイル、1つの権限セット、2つのロールを作成する
これは正解です。この方法では、1つのプロファイルと権限セットで基本的なアクセス権を定義し、2つのロール(営業マネージャー用と営業担当者用)を作成して階層的なアクセス制御を実現します。営業マネージャーのロールは営業担当者のロールよりも上位に設定し、営業マネージャーが営業担当者が所有する取引先のデータにアクセスできるようにします。
□ 1つのプロファイル、2つの権限セット、1つのロールを作成する
これは不正解です。この設定ではロール階層が不足しているため、営業マネージャーが直属の営業担当者が所有する取引先データにアクセスすることができません。営業マネージャーと営業担当者間のデータの可視性を確保するためには、異なるロールを持つ階層的な関係が必要ですが、この設定ではそれが実現されていません。
コメント