Salesforce Sharing and Visibilityアーキテクト合格(問題サンプルあり)

SharingAndVisibility メジャーアップデート/資格試験

Salesforce認定Sharing and Visibilityアーキテクト(旧認定Sharing and Visibilityデザイナー)に合格したので受験時のメモを残しておきます。

勉強時間は40~50時間ほど、Spring’22バージョンでの受験でした。

・試験時間:120分

・合格基準点:67%

・受験料:4万円(税抜) ※Administrator試験などと比べて倍!

 

 

試験名の通り共有権、可視化を問う試験です。

シナリオに沿って回答するという意味でDataアーキテクト試験に似ていますが、より長文、より日本語翻訳がおかしい、より前提記載がないので正解とされる回答以外でも正解と言えてしまうという印象でした。

合格に必要な正答数もDataアーキテクトに比べ10%ほど増えるため総合的に難易度が高いと感じました。

組織の共有設定を非公開や参照のみとした上でロール、共有ルール、共有セット、公開グループなどシナリオに沿って拡張していくという問題が多かったです。

試験を受けてみて特に意識したほうが良いと感じたキーワードは下記です。

組織の共有設定、暗黙の共有、プロファイル、権限セット、取引先/商談/ケースチーム、共有ルール、主従、パートナースーパーユーザ、Experienceユーザライセンス、Chatter/レポート/ファイルを誰が見れるか、DescribeSObjectResult4種、共有オブジェクトとApex共有の理由、with sharing、XSS攻撃、CSRF攻撃、SOQLインジェクション、粒状ロック、データスキュー、外部オブジェクト

実際の試験範囲や出題割合は受験ガイドをご覧ください。

その他で基礎を抑えるという意味で公式のYoutube動画も勉強になりました。

 

 

出題された問題

覚えている範囲ですが、実際に出題された問題のイメージをいくつか記載します。細かい表現は異なる点があり、あくまでイメージとなります。

Q1:パートナーコミュニティライセンスで外部ユーザ用サイトを運用しています。外部ユーザに自分が所有者のケースの他に、同じ取引先に所属するユーザが所有するケースにはアクセスを許可したいです。組織の共有設定でケースは非公開となっている場合にアーキテクトは何を設定する必要がありますか。

a.スーパーユーザ
b.権限セット
c.共有セット
d.共有グループ

c.共有セット

自分が所属する取引先のIDとケースが紐づく取引先IDが一致する場合にアクセスを許可するという共有セットを作成します。

 

 

Q2:非公開ライブラリに保存されたレポートにアクセスできるのは誰ですか。

a.レポート所有者
b.レポート所有者と[すべてのデータ参照]権限を持つユーザ
c.レポート所有者と[非公開ライブラリへのアクセス]権限を持つユーザ
d.レポート所有者とそのロール上位に位置するユーザ

a.レポート所有者

非公開ライブラリに保存されたレポートはシステム管理者や特別な権限を持ったユーザ、ロール上位ユーザでもアクセスは出来ません。

 

 

Q3:ユーザAは自身の商談で苦戦しておりユーザBにヘルプを求めると同時に手動共有でユーザBにその商談へのアクセス権を付与しました。組織の共有設定ですべてのオブジェクトは非公開です。副次的な動作で気を付けることはどれですか。

a.ユーザBは暗黙的な共有で商談の取引先に表示権限が付与される
b.ユーザBは暗黙的な共有で商談の取引先に表示/編集権限が付与される
c.ユーザBは暗黙的な共有で商談の取引先責任者に表示権限が付与される
d.ユーザBは暗黙的な共有で商談の取引先責任者に表示/編集権限が付与される

a.ユーザBは暗黙的な共有で商談の取引先に表示権限が付与される

商談に参照権限のみ、または参照と編集権限があるユーザには暗黙的な共有で取引先への参照権限が与えられます。

 

 

Q4:営業マネージャから、営業ユーザに本来表示されないはずの商談項目が表示されていると指摘されました。開発からリリースまでにどの方法をとることが適切だったでしょうか。2つ選択してください。

a.runAsメソッドで適切な項目表示となっているか確認する
b.with Sharingキーワードで適切な項目表示となるよう制御する
c.isAccesibleメソッドで項目表示が可能なアクセス権があるか確認する
d.isViewableメソッドで項目表示が可能なアクセス権があるか確認する

b.with Sharingキーワードで適切な項目表示となるよう制御する
c.isAccesibleメソッドで項目表示が可能なアクセス権があるか確認する

with Sharingで現在のユーザがアクセス可のレコードのみにアクセス可能として制御します。項目表示に必要なアクセス権があるかはisAccesibleで確認します。isViewableというメソッドはありません。runAsメソッドはレコード単位のアクセス権を確認するものであり項目単位での確認は出来ません。

 

 

Q5:SOQLインジェクションの対応策として有効なものはどれですか。

a.静的クエリとバインド変数を使用する
b.動的クエリと定義関数を使用する
c.escapeSingleQuotes関数呼び出しで二重引用符をエスケープする
d.Limitsメソッドに加えstartTestとstopTestメソッドを使用する

a.静的クエリとバインド変数を使用する

動的クエリではなく静的クエリ、加えてバインド変数を使用することで対策が出来ます。cはescapeSingleQuotes関数呼び出しは正しいですが二重引用符ではなく一重引用符をエスケープします。dはガバナ制限に近づいているかテストする際に使用します。

 

 

Salesforce認定試験の受験時メモは下記でも紹介しています。

こちらも是非ご覧ください。

コメント

タイトルとURLをコピーしました