こんにちは、にいるです。
連結オブジェクトのアクセス権限について書いてみます。
主従関係と関連しているので、主従関係について知りたい方は下記からご覧ください。
・【Salesforce】主従関係について
1.連結オブジェクトとは
まず、初めに連結オブジェクトとは、2つのオブジェクトを繋ぐオブジェクトのことです。
ジャンクションオブジェクトとも呼ばれます。
これを使用すると多対多のリレーションを作成することができます。
特にトランザクションデータの管理に向いています。
今回、使用する連結オブジェクトの相関図です。
「取引先責任者」の従に「購入」というカスタムオブジェクトを設置しました。
そして、「購入」のもう1つの主に「商品マスタ」というカスタムオブジェクトを設置しています。
このリレーションは取引先責任者が購入した商品を管理できる目的で作成しています。
AさんがXを購入することができますし、Aさんはこの他にYを購入することもできます。
逆に商品マスタ側から見ると、Xの商品はAさんとBさんが購入できて、Yの商品も同じくAさんとBさんが購入できるという風に、1つのオブジェクトを間に挟むことで柔軟なデータ管理が可能になります。
※先に関係を構築した方をプライマリオブジェクト(この場合、取引先責任者)と呼びます。
※後に関係を構築した方はセカンダリオブジェクト(こっちは商品マスタ)です。
2.連結オブジェクトのアクセス権限
それぞれのアクセス権限を見ていきます。
前提として、
購入は主従関係のため、「親レコードに連動」になります。
取引先責任者と商品マスタは非公開です。
2-1.取引先責任者と商品マスタの両方にアクセス権限を持つ場合
全オブジェクトへのアクセス権限を持っているので見えました。
2-2.取引先責任者だけにアクセス権限を持つ場合
結果、全データは見えず。
関連リストを確認すると、商品マスタはなく連結オブジェクトのレコードも見えませんでした。
こちらの例は一番シンプルでわかりやすいですね。
2-3.商品マスタだけにアクセス権限を持つ場合
こちらも結果、全データは見えず。
購入の関連リストがないですね。
これは、親レコードの取引先責任者オブジェクトへのアクセス権限を持っていないからですね。
2-4.どちらにもアクセス権限を持たない場合
最後、こちらの結果も全データは見えず。
取引先責任者も商品マスタも購入のいずれも関連リストに項目がなく、レコードが見えませんでした。
まあ、アクセス権限がどのオブジェクトにも一切ないので、見えないのは当たり前ですよね。
3.まとめ
いかがでしたでしょうか。
どちらかの主オブジェクトへのアクセス権限を持っていないと、プライマリ・セカンダリ関係なく連結オブジェクトは見えなくなる仕組みでした。
これ、前から検証してみようと思っていたんですが、色々めんどくさそうで敬遠していました笑
でもやっぱり自分で調べるのはいいですね。
考えながら実機操作しているので、想定と違うととても身に付きます。
皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!