function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
bronzebronze 

組織の共有設定の情報取得方法

お世話になります。

 

Visutalforceページを活用して詳細画面を作成し、

組織の共有設定に応じて「共有」ボタンを表示/非表示したいと考えております。

 

標準コントローラでは共有ボタンの機能は提供されていないようなので

自前でボタンだけは作成しました。

 

が、当たり前ですが、共有設定に応じてボタンの表示/非表示はされません。

グローバル変数等を探してはみたのですが、見つけられていません。

 

共有設定情報が取得できる手段等ありましたら

ご教授下さい。

 

宜しくお願い致します。

 

Best Answer chosen by Admin (Salesforce Developers) 
tajimatajima

あるレコードがあるユーザーに対してどのようなアクセス権があるのかどうかは、
Shareオブジェクトと呼ばれる内部オブジェクトのレコードで判断します。

たとえば、Accountオブジェクトに対してはAccountShareオブジェクトがあり、
CustomObject__cオブジェクトに対してはCustomObject__Shareオブジェクトがあります。
(このオブジェクトが「公開」でない場合に自動的に作成されています)

これらのShareオブジェクトは、対象となるレコードのID、共有者(またはグループ)のID、
アクセス権、共有の理由などを項目値として持っているので、
このShareオブジェクトを検索することにより、どのユーザーがどのレコードに対して
どのようなアクセス権を持っているかを調べることができます。
また、Apexコード中でShareオブジェクトを作成してinsertすることにより
共有設定を増やすこともできます。

Shareオブジェクトの詳細はWeb Services APIのリファレンスが、
http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_objects_list.htm

Apexコード中での共有に関する情報はApex Codeのリファレンスが参考になるかと思います。
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_bulk_sharing.htm

 

All Answers

tajimatajima

あるレコードがあるユーザーに対してどのようなアクセス権があるのかどうかは、
Shareオブジェクトと呼ばれる内部オブジェクトのレコードで判断します。

たとえば、Accountオブジェクトに対してはAccountShareオブジェクトがあり、
CustomObject__cオブジェクトに対してはCustomObject__Shareオブジェクトがあります。
(このオブジェクトが「公開」でない場合に自動的に作成されています)

これらのShareオブジェクトは、対象となるレコードのID、共有者(またはグループ)のID、
アクセス権、共有の理由などを項目値として持っているので、
このShareオブジェクトを検索することにより、どのユーザーがどのレコードに対して
どのようなアクセス権を持っているかを調べることができます。
また、Apexコード中でShareオブジェクトを作成してinsertすることにより
共有設定を増やすこともできます。

Shareオブジェクトの詳細はWeb Services APIのリファレンスが、
http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_objects_list.htm

Apexコード中での共有に関する情報はApex Codeのリファレンスが参考になるかと思います。
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_bulk_sharing.htm

 

This was selected as the best answer
bronzebronze

 

>tajimaさん

 

ご回答ありがとう御座います。

 

> あるレコードがあるユーザーに対してどのようなアクセス権があるのかどうかは、
> Shareオブジェクトと呼ばれる内部オブジェクトのレコードで判断します。

>

> (このオブジェクトが「公開」でない場合に自動的に作成されています)

 

なるほど、オブジェクトの存在有無で判断すれば、ボタンの表示/非表示を切り替えられますね。

試しにやってみます。ありがとう御座いました。

 

また、宜しくお願い致します。