Implicit Sharing(暗黙的な共有)とは何か?

By | May 20, 2023

Implicit Sharingとは何か

Implicit Sharing(暗黙的な共有)またはBuilt-in Sharing(組み込みの共有動作)とは、Salesforceに予め組み込まれた共有動作のことである。

換言すれば、管理者が設定を行わない場合でも自動的に動作し、無効化する手段が存在しないようなSalesforceのレコード共有の仕組みが一般にImplicit Sharingと呼ばれる。

Implicit Sharingの一覧

Parent Implicit Sharing

  • 取引先の子レコード(取引先責任者・商談・ケース・注文)にアクセス権を持つユーザは、その親の取引先への参照権を持つ。

Child Implicit Sharing

  • 取引先の所有者は、子レコード(取引先責任者・商談・ケース)へのアクセス権を持つ。付与されるアクセス権の種別(View, Edit, No Access)は、取引先所有者ユーザのロール設定での定義に基づいて決定される。

Site/Portal Implicit Sharing

  • Experience Cloudユーザは、「自身が所属する取引先」と「その取引先に紐づく全ての取引先責任者」に対する参照権を持つ。
  • Experience Cloudユーザは、自身がケースの取引先責任者として指定されている場合、当該のケースに対する参照・編集権を持つ(※ただし、CCライセンスのユーザの場合ShareeオブジェクトがbypassされるのでこのImplicit Sharingは動かない。なので、ここでいうところのExperience Cloudユーザは厳密にはHighVolumeCustomerではないExperience Cloudユーザを指す。従って、ケースへのアクセス権付与はCCライセンスの場合、共有セットの設定が必要となる。)

High Volume Portal Implicit Sharing

  • 「共有グループ(Share Group)」のグループメンバは、当該の共有グループの適用対象として指定されているHigh-Volumeユーザが所有する全てのレコードに対する参照・編集権を持つ。

High Volume Parent Implicit Sharing

  • 「共有グループ(Share Group)」のグループメンバは、共有グループを通してアクセス権を獲得したレコードの親取引先への参照権を持つ。

参考:Faster Account Sharing Recalculation強制適用

2023年5月現在のSalesforceのロードマップでは、Faster Account Sharing RecalculationがWinter’24で強制適用予定である。Faster Account Sharing Recalculationが強制適用された場合、Child Implicit Shareの内部的な計算方法が変更される。詳細についてはこちらの記事を参照されたい。

参考:High-Volume Userについて

High-Volume User(=Customer Community・High Volume Customer Portal・Authenticated Websiteライセンスのユーザ)にはロールがないが、これはユーザ数が数百万〜数千万になった場合でも耐えられるよう、レコード共有の計算を簡素化しパフォーマンスを向上させるために設けられている意図的な制約である。

ロールを含め、High-Volumeユーザは以下を利用できないという制限を持つ。

  • レコードの直接共有
  • メンバーベースユーザから大規模ユーザへのケースの移行
  • 取引先の所有
  • 大規模ユーザが所有するケースへのケースチームの追加
  • 以下への割り当て
    • ロール
    • 公開グループ
    • 非公開グループ(Personal Group)
    • 所有者ベースの共有ルール
    • 取引先チーム
    • 商談チーム
    • ケースチーム
    • Salesforce CRM Contentライブラリ
    • テリトリー

参考:Child Implicit SharingをImplicit Sharingに含めるという分類の正当性について

土田氏が「【機能紹介】Salesforceの共有設定をマスターしよう! 〜 Sharing & Visibility」の中で指摘する通り、Child Implicit Sharingについては、ロールの設定画面にて付与するアクセスレベル/アクセス権を付与するかどうかをexplicitに定義できる(つまり、管理者側で付与するアクセス権限を制御できる)ため、これをimplicit sharingに分類することへの嫌疑が古くから存在する。

上述の通りChild Implicit Sharingはまもなく廃止予定のため、今後この議論は無くなっていくものと思われるが、歴史的記録を目的としてここに記述しておく。

参考資料

A Guide to Sharing Architecture

Designing Record Access for Enterprise Scale – Implicit Sharing

Salesforce Help – Built-in Sharing Behavior

共有に関するおすすめ動画