SlideShare a Scribd company logo
1 of 19
Takashi Hatamoto
Restriction Rules(制限ルール)
調べてみた
Summer’21新機能に関する調査と考察
SFDG 運営サブリーダー
自己紹介
はたもと たかし
畑本 貴史
株式会社チームスピリット エンジニア
TSFチーム(製品開発)
こんな感じ
• Salesforceひとすじ早10年
• AIアプリコンテスト2018 優勝チーム(ロボホンズ)
• Salesforce Developer Group Tokyo 運営
Summer’21新機能の中でこんなものが
Control Access to Sensitive
Records with Restriction Rules
(Now in Beta)
https://developer.salesforce.com/
blogs/2021/05/control-access-to-
sensitive-records-with-restriction-
rules-now-in-beta.html
→ Restriction Rules(制限ルー
ル)による機密レコードへのアク
セス制御
Summer’21新機能の中でこんなものが
Control Access to Sensitive
Records with Restriction Rules
(Now in Beta)
https://developer.salesforce.com/
blogs/2021/05/control-access-to-
sensitive-records-with-restriction-
rules-now-in-beta.html
→ Restriction Rules(制限ルー
ル)による機密レコードへのアク
セス制御
組織の標準設定 +
追加の共有
(共有ルール、手動共有)
左記の設定 -
制限ルール
Summer’21新機能の中でこんなものが
Control Access to Sensitive
Records with Restriction Rules
(Now in Beta)
https://developer.salesforce.com/
blogs/2021/05/control-access-to-
sensitive-records-with-restriction-
rules-now-in-beta.html
→ Restriction Rules(制限ルー
ル)による機密レコードへのアク
セス制御
組織の標準設定 +
追加の共有
(共有ルール、手動共有)
左記の設定 -
制限ルール
可視性の
「引き算」が
できる!?
もう少し調べてみた
Without restriction rules, users who have access to an account can see its contracts, tasks, and events,
even when the organization-wide default is set to Private. For custom objects, users can see all of their
child records. Restriction rules allow you to define which users see which records in Lightning
Experience for custom objects, contracts, tasks, and events and configure truly “Private” access for
these objects. Creating, editing, and deleting restriction rules are only available via the Tooling and
Metadata APIs.
もう少し調べてみた
Without restriction rules, users who have access to an account can see its contracts, tasks, and events,
even when the organization-wide default is set to Private. For custom objects, users can see all of their
child records. Restriction rules allow you to define which users see which records in Lightning
Experience for custom objects, contracts, tasks, and events and configure truly “Private” access for
these objects. Creating, editing, and deleting restriction rules are only available via the Tooling and
Metadata APIs.
• 適用できるオブジェクト
• Contract(契約)、task(ToDo)、event(行動)
• カスタムオブジェクト
• 組織のデフォルト共有設定が「非公開」であっても、これらのオブジェクトが子レコードになってい
る場合は無制限に参照可能になってしまう。
• →子レコードの中でも更に詳細な閲覧制限を実現したい場合に使用する
• 登録/更新/削除は以下の経路で行う
• Tooling API
• Metadata API
設定方法①:Tooling API
Tooling API:JSON形式で定義を作成
→Tooling APIエンドポイントにPOSTで送る /services/data/v52.0/tooling/sobjects/RestrictionRule
{
"FullName":"restictionruleeventsrole",
"Metadata": {
"active":true,
"description":"Allows active users to see only events owned by users of the same role.",
"enforcementType":"Restrict",
"masterLabel":"Events Owned by Same Role",
"recordFilter": "Owner.RoleId = $User.UserRoleId",
"targetEntity":"Event",
"userCriteria":"$User.IsActive = true",
"version":1
}
}
設定方法②:Metadata API
Metadata API:XML形式で定義ファイルを作成
<?xml version="1.0" encoding="UTF-8"?>
<RestrictionRule xmlns="http://soap.sforce.com/2006/04/metadata">
<active>true</active>
<description>Sales team can see only task records with specified record type</description>
<enforcementType>Restrict</enforcementType>
<masterLabel>Sales Team Record Type</masterLabel>
<recordFilter>recordTypeId = '011xxxxxxxxxxxx'</recordFilter>
<targetEntity>Task</targetEntity>
<userCriteria>$User.ProfileId = '00exxxxxxxxxxxx'</userCriteria>
<version>1</version>
</RestrictionRule>
→package.xmlとともにデプロイ
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>restrictionRules</members>
<name>RestrictionRule</name>
</types>
<version>52.0</version>
</Package>
定義ファイルの内容について
属性の一覧
Tooling API属性 Metadata API属性 内容
Description description ルールの説明文 (任意入力)
DeveloperName XMLファイル名 ルールの物理名(組織内で一意)
EnforcementType enforcementType 「Restrict」を指定 (将来のための予約?)
他は「FieldRestrict」「Scoping」があるが使用不可
FullName XMLファイル名 Metadataファイルの名称
IsActive active 有効/無効フラグ
Language なし? 対象言語を指定(?)
MasterLabel masterLabel ルールの論理名
Metadata XMLファイル? メタデータxmlを直接指定?
RecordFilter recordFilter 表示レコードの検索条件
TargetEntity targetEntity 対象オブジェクト
・契約、活動(ToDo、行動)
・カスタムオブジェクト
UserCriteria userCriteria 対象ユーザの指定条件
Version version ルールのバージョン番号
想定されるユースケースとサンプル①
• Allow Users to See Only Specified Record Type
特定のレコードタイプのみ表示される
• recordFilter:RecordTypeId = ‘012xxxxxxxxxxxx’ (レコードタイプID)
• userCriteria:$User.RoleId = ‘00exxxxxxxxxxxx‘ (ユーザのロールID)
• Allow Users to See Only Records That They Own
所有者が自分であるレコードのみ表示される
• recordFilter:OwnerId = $User.Id (所有者のID = ユーザID)
• userCriteria:$User.ProfileId = ‘005xxxxxxxxxxxx’ (ユーザのプロファイルID)
• Allow Users to See Only Records Owned by Same Role
自分と同じロールの人が所有するレコードのみ表示される
• recordFilter:Owner.RoleId = $User.UserRoleId
(所有者のロールID = ユーザのロールID)
• userCriteria:$User.IsActive = true
(有効ユーザすべて)
想定されるユースケースとサンプル②
• Allow Users to See Only Records Owned by Same Profile
自分と同じプロファイルの人が所有するレコードのみ表示される
• recordFilter:Owner.ProfileId = $User.ProfileId
(所有者のプロファイルID = ユーザのプロファイルID)
• userCriteria:$User.IsActive = true
(有効ユーザすべて)
• Allow Users to See Records Based on a Custom Field
カスタム項目の値を使った制御
• recordFilter:Department__c = $User.Department
(項目:Department__cの値 = ユーザの部署)
• userCriteria:$User.UserType = ‘CSPLitePortal’
(ユーザライセンスが「CSP Lite Portal」)
詳細仕様
• recordFilter の仕様
• レコードが持つ項目に対し条件指定できる ※参照関係の1階層先まで辿れる
• 比較対象にユーザ項目を指定可能
• 条件は1つのみ(And/Orは不可)
• userCriteria の仕様
• ユーザ項目に対し条件指定できる
• 条件は1つのみ(And/Orは不可)
• Restriction Rule の仕様
• 組織のエディションによって上限が異なる
• EnterPrise、Developer:1オブジェクトあたり2個
• Performance、Unlimited: 1オブジェクトあたり5個
• その中で、同一ユーザに対して指定できるルールは1個
• 同一ユーザを巻き込まないルール設計が必要
• システム管理者の操作、システムコンテキスト処理(Apex、フロー)には影響しない
まとめ:Restriction Ruleと共有ルールの違い
比較要素 Restriction Rule 共有ルール 直接共有
対象 契約、ToDo、行動
カスタムオブジェクト
所有者のあるレコード
(主従関係の子レコードを除く)
前提条件 なし 組織のデフォルト設定が「非公開」「参照の
み」
対象レコード指
定
クエリ構文で指定
・レコードの項目
選択リストで指定
・所有者の所属ロー
ル、公開グループ
・ユーザの項目
ID直接指定
(共有設定の分だけ
レコード登録)
対象ユーザ指
定
クエリ構文で指定
・ユーザの項目
・ロール
・プロファイル
選択リストで指定
・所有者の所属ロー
ル、公開グループ
・ユーザID直接指定
・ロール
・公開グループ
効果 ・条件を満たすレコー
ドのみにアクセスでき
る
・条件を満たさない場
合、共有設定に関わ
らずアクセスできない
・条件を満たすレコードにアクセスできる
・複数の共有ルールのいずれか、あるいは直
接共有されていれば参照・編集権限を持つ
さっそく設定してみた・・・
• Metadata APIでデプロイ
さっそく設定してみた・・・!?
• Metadata APIでデプロイ
さっそく設定してみた・・・!?
• Metadata APIでデプロイ
現在はSandboxでしか使えないそうです😥
(Salesforce サポートから有効化依頼)
参考資料
• Salesforce Developer Blog
• 紹介記事
• https://developer.salesforce.com/blogs/2021/05/control-access-to-sensitive-records-with-restriction-
rules-now-in-beta.html
• Restriction Rules Developer Guide (Beta)
• Restriction Rulesのリファレンス
• https://developer.salesforce.com/docs/atlas.en-
us.restriction_rules.meta/restriction_rules/meta_restrictionrule.htm
• Trailblazer Communityグループ:Restriction Rules Beta
• ベータ参加ユーザ向けのグループ
• https://trailhead.salesforce.com/ja/trailblazer-community/groups/0F94S000000Gwle#discussion
Restriction Rules(制限ルール)調べてみた

More Related Content

What's hot

Salesforceの開発についてちょっと詳しくなる
Salesforceの開発についてちょっと詳しくなるSalesforceの開発についてちょっと詳しくなる
Salesforceの開発についてちょっと詳しくなるJunko Nakayama
 
Salesforceのサイトゲストユーザについて
SalesforceのサイトゲストユーザについてSalesforceのサイトゲストユーザについて
SalesforceのサイトゲストユーザについてTaiki Yoshikawa
 
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較Takashi Hatamoto
 
大量データを扱う際のクイックTips インデックス&スキニーテーブル編-
大量データを扱う際のクイックTips インデックス&スキニーテーブル編-大量データを扱う際のクイックTips インデックス&スキニーテーブル編-
大量データを扱う際のクイックTips インデックス&スキニーテーブル編-Salesforce Developers Japan
 
Salesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱いSalesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱いSalesforce Developers Japan
 
Lightning Knowledgeをちょっとだけ触ってみた
Lightning Knowledgeをちょっとだけ触ってみたLightning Knowledgeをちょっとだけ触ってみた
Lightning Knowledgeをちょっとだけ触ってみたy-maeda
 
はじめようLightningコンポーネント
はじめようLightningコンポーネントはじめようLightningコンポーネント
はじめようLightningコンポーネントSalesforce Developers Japan
 
認定Field Service Lightningコンサルタント 合格への第一歩
認定Field Service Lightningコンサルタント 合格への第一歩認定Field Service Lightningコンサルタント 合格への第一歩
認定Field Service Lightningコンサルタント 合格への第一歩Takahito Miyamoto
 
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメントSalesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメントSalesforce Developers Japan
 
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発Salesforce Developers Japan
 
Salesforceの標準オブジェクトについて復習してみた
Salesforceの標準オブジェクトについて復習してみたSalesforceの標準オブジェクトについて復習してみた
Salesforceの標準オブジェクトについて復習してみたy-maeda
 
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツLightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツSalesforce Developers Japan
 
Lightning アプリケーション開発 - Visualforce ページの移行
Lightning アプリケーション開発 - Visualforce ページの移行Lightning アプリケーション開発 - Visualforce ページの移行
Lightning アプリケーション開発 - Visualforce ページの移行Salesforce Developers Japan
 
Einstein Analyticsでのデータ取り込みと加工
Einstein Analyticsでのデータ取り込みと加工Einstein Analyticsでのデータ取り込みと加工
Einstein Analyticsでのデータ取り込みと加工Salesforce Developers Japan
 
Salesforce開発で気を付けたいポイント
Salesforce開発で気を付けたいポイントSalesforce開発で気を付けたいポイント
Salesforce開発で気を付けたいポイントy-maeda
 
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指してApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指してTakahiro Yonei
 

What's hot (20)

Salesforceの開発についてちょっと詳しくなる
Salesforceの開発についてちょっと詳しくなるSalesforceの開発についてちょっと詳しくなる
Salesforceの開発についてちょっと詳しくなる
 
Salesforceのサイトゲストユーザについて
SalesforceのサイトゲストユーザについてSalesforceのサイトゲストユーザについて
Salesforceのサイトゲストユーザについて
 
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
20230424_TDXGG寄稿記事:同期/非同期アーキテクチャの比較
 
大量データを扱う際のクイックTips インデックス&スキニーテーブル編-
大量データを扱う際のクイックTips インデックス&スキニーテーブル編-大量データを扱う際のクイックTips インデックス&スキニーテーブル編-
大量データを扱う際のクイックTips インデックス&スキニーテーブル編-
 
Salesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱いSalesforceでの大規模データの取り扱い
Salesforceでの大規模データの取り扱い
 
Lightning Knowledgeをちょっとだけ触ってみた
Lightning Knowledgeをちょっとだけ触ってみたLightning Knowledgeをちょっとだけ触ってみた
Lightning Knowledgeをちょっとだけ触ってみた
 
はじめようLightningコンポーネント
はじめようLightningコンポーネントはじめようLightningコンポーネント
はじめようLightningコンポーネント
 
基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304
 
Visualforceを使ってみよう
Visualforceを使ってみようVisualforceを使ってみよう
Visualforceを使ってみよう
 
認定Field Service Lightningコンサルタント 合格への第一歩
認定Field Service Lightningコンサルタント 合格への第一歩認定Field Service Lightningコンサルタント 合格への第一歩
認定Field Service Lightningコンサルタント 合格への第一歩
 
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメントSalesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
Salesforce開発プロジェクトの進め方とアプリケーションライフサイクルマネジメント
 
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
Salesforce DXとLightning Web ComponentsでモダンSalesforceアプリ開発
 
Salesforceの標準オブジェクトについて復習してみた
Salesforceの標準オブジェクトについて復習してみたSalesforceの標準オブジェクトについて復習してみた
Salesforceの標準オブジェクトについて復習してみた
 
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツLightning コンポーネント開発〜実装例から学ぶ開発のコツ
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
 
Python開発者のためのHeroku入門
Python開発者のためのHeroku入門Python開発者のためのHeroku入門
Python開発者のためのHeroku入門
 
Lightning アプリケーション開発 - Visualforce ページの移行
Lightning アプリケーション開発 - Visualforce ページの移行Lightning アプリケーション開発 - Visualforce ページの移行
Lightning アプリケーション開発 - Visualforce ページの移行
 
Einstein Analyticsでのデータ取り込みと加工
Einstein Analyticsでのデータ取り込みと加工Einstein Analyticsでのデータ取り込みと加工
Einstein Analyticsでのデータ取り込みと加工
 
Salesforce開発で気を付けたいポイント
Salesforce開発で気を付けたいポイントSalesforce開発で気を付けたいポイント
Salesforce開発で気を付けたいポイント
 
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指してApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指して
 
Salesforce Big Object 最前線
Salesforce Big Object 最前線Salesforce Big Object 最前線
Salesforce Big Object 最前線
 

Similar to Restriction Rules(制限ルール) 調べてみた

Salesforce restriction rules <2 min Summary
Salesforce restriction rules <2 min SummarySalesforce restriction rules <2 min Summary
Salesforce restriction rules <2 min SummaryAbhinav Gupta
 
Atlassian jira как полностью раскрыть возможности
Atlassian jira   как полностью раскрыть возможностиAtlassian jira   как полностью раскрыть возможности
Atlassian jira как полностью раскрыть возможностиAndrew Fadeev
 
Operator SDK for K8s using Go
Operator SDK for K8s using GoOperator SDK for K8s using Go
Operator SDK for K8s using GoCloudOps2005
 
Cairo meetup low code best practices
Cairo meetup low code best practicesCairo meetup low code best practices
Cairo meetup low code best practicesAhmed Keshk
 
Best practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata APIBest practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata APISanchit Dua
 
CUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsCUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsAlfresco Software
 
Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsSalesforce Developers
 
Best practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata APIBest practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata APISanchit Dua
 
Dev confus.2020 compliance operator
Dev confus.2020 compliance operatorDev confus.2020 compliance operator
Dev confus.2020 compliance operatorjaormx
 
Implementing Authorization
Implementing AuthorizationImplementing Authorization
Implementing AuthorizationTorin Sandall
 
Overview of vidhita_business_rules_composer
Overview of vidhita_business_rules_composerOverview of vidhita_business_rules_composer
Overview of vidhita_business_rules_composerOm Visvanathan
 
February 2020 Salesforce API Review
February 2020 Salesforce API ReviewFebruary 2020 Salesforce API Review
February 2020 Salesforce API ReviewLydon Bergin
 
Presentation Moss 2007 Usman
Presentation Moss 2007 UsmanPresentation Moss 2007 Usman
Presentation Moss 2007 UsmanUsman Zafar Malik
 
JBPM5 Community Training Course - Module #1 Introduction
JBPM5 Community Training Course - Module #1 IntroductionJBPM5 Community Training Course - Module #1 Introduction
JBPM5 Community Training Course - Module #1 IntroductionMauricio (Salaboy) Salatino
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notesaggopal1011
 
Singapore Admin Group - 5 Free Admin Tools to Make Your Life Easier
Singapore Admin Group - 5 Free Admin Tools to Make Your Life EasierSingapore Admin Group - 5 Free Admin Tools to Make Your Life Easier
Singapore Admin Group - 5 Free Admin Tools to Make Your Life EasierJoey Chan
 
Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2Salesforce Developers
 
Secure Coding: Field-level Security, CRUD, and Sharing
Secure Coding: Field-level Security, CRUD, and SharingSecure Coding: Field-level Security, CRUD, and Sharing
Secure Coding: Field-level Security, CRUD, and SharingSalesforce Developers
 
Spring '16 Release Overview - Bilbao Feb 2016
Spring '16 Release Overview - Bilbao Feb 2016Spring '16 Release Overview - Bilbao Feb 2016
Spring '16 Release Overview - Bilbao Feb 2016Peter Chittum
 

Similar to Restriction Rules(制限ルール) 調べてみた (20)

Salesforce restriction rules <2 min Summary
Salesforce restriction rules <2 min SummarySalesforce restriction rules <2 min Summary
Salesforce restriction rules <2 min Summary
 
Atlassian jira как полностью раскрыть возможности
Atlassian jira   как полностью раскрыть возможностиAtlassian jira   как полностью раскрыть возможности
Atlassian jira как полностью раскрыть возможности
 
Operator SDK for K8s using Go
Operator SDK for K8s using GoOperator SDK for K8s using Go
Operator SDK for K8s using Go
 
Cairo meetup low code best practices
Cairo meetup low code best practicesCairo meetup low code best practices
Cairo meetup low code best practices
 
Opa in the api management world
Opa in the api management worldOpa in the api management world
Opa in the api management world
 
Best practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata APIBest practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata API
 
CUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsCUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension Points
 
Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong Foundations
 
Best practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata APIBest practices in using Salesforce Metadata API
Best practices in using Salesforce Metadata API
 
Dev confus.2020 compliance operator
Dev confus.2020 compliance operatorDev confus.2020 compliance operator
Dev confus.2020 compliance operator
 
Implementing Authorization
Implementing AuthorizationImplementing Authorization
Implementing Authorization
 
Overview of vidhita_business_rules_composer
Overview of vidhita_business_rules_composerOverview of vidhita_business_rules_composer
Overview of vidhita_business_rules_composer
 
February 2020 Salesforce API Review
February 2020 Salesforce API ReviewFebruary 2020 Salesforce API Review
February 2020 Salesforce API Review
 
Presentation Moss 2007 Usman
Presentation Moss 2007 UsmanPresentation Moss 2007 Usman
Presentation Moss 2007 Usman
 
JBPM5 Community Training Course - Module #1 Introduction
JBPM5 Community Training Course - Module #1 IntroductionJBPM5 Community Training Course - Module #1 Introduction
JBPM5 Community Training Course - Module #1 Introduction
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notes
 
Singapore Admin Group - 5 Free Admin Tools to Make Your Life Easier
Singapore Admin Group - 5 Free Admin Tools to Make Your Life EasierSingapore Admin Group - 5 Free Admin Tools to Make Your Life Easier
Singapore Admin Group - 5 Free Admin Tools to Make Your Life Easier
 
Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2
 
Secure Coding: Field-level Security, CRUD, and Sharing
Secure Coding: Field-level Security, CRUD, and SharingSecure Coding: Field-level Security, CRUD, and Sharing
Secure Coding: Field-level Security, CRUD, and Sharing
 
Spring '16 Release Overview - Bilbao Feb 2016
Spring '16 Release Overview - Bilbao Feb 2016Spring '16 Release Overview - Bilbao Feb 2016
Spring '16 Release Overview - Bilbao Feb 2016
 

More from Takashi Hatamoto

20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)Takashi Hatamoto
 
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話Takashi Hatamoto
 
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿Takashi Hatamoto
 
20230830_ArchitectGroup_SWTT再演(GraphQL)
20230830_ArchitectGroup_SWTT再演(GraphQL)20230830_ArchitectGroup_SWTT再演(GraphQL)
20230830_ArchitectGroup_SWTT再演(GraphQL)Takashi Hatamoto
 
20221104_しゃべくりforceのおしゃべり用資料
20221104_しゃべくりforceのおしゃべり用資料20221104_しゃべくりforceのおしゃべり用資料
20221104_しゃべくりforceのおしゃべり用資料Takashi Hatamoto
 
DreamTXセッションから読み解くAI活用の現状と展望
DreamTXセッションから読み解くAI活用の現状と展望DreamTXセッションから読み解くAI活用の現状と展望
DreamTXセッションから読み解くAI活用の現状と展望Takashi Hatamoto
 
LEXモバイルから紐解くSalesforceモバイル史
LEXモバイルから紐解くSalesforceモバイル史LEXモバイルから紐解くSalesforceモバイル史
LEXモバイルから紐解くSalesforceモバイル史Takashi Hatamoto
 
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsAdminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsTakashi Hatamoto
 

More from Takashi Hatamoto (8)

20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
 
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
 
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿
20231212_【オンライン開催】SWTT 2023秋 振り返り会 for Arch-寄稿
 
20230830_ArchitectGroup_SWTT再演(GraphQL)
20230830_ArchitectGroup_SWTT再演(GraphQL)20230830_ArchitectGroup_SWTT再演(GraphQL)
20230830_ArchitectGroup_SWTT再演(GraphQL)
 
20221104_しゃべくりforceのおしゃべり用資料
20221104_しゃべくりforceのおしゃべり用資料20221104_しゃべくりforceのおしゃべり用資料
20221104_しゃべくりforceのおしゃべり用資料
 
DreamTXセッションから読み解くAI活用の現状と展望
DreamTXセッションから読み解くAI活用の現状と展望DreamTXセッションから読み解くAI活用の現状と展望
DreamTXセッションから読み解くAI活用の現状と展望
 
LEXモバイルから紐解くSalesforceモバイル史
LEXモバイルから紐解くSalesforceモバイル史LEXモバイルから紐解くSalesforceモバイル史
LEXモバイルから紐解くSalesforceモバイル史
 
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsAdminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発Tips
 

Recently uploaded

定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Personfurqan222004
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Lucknow
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Roomdivyansh0kumar0
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Roomdivyansh0kumar0
 
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...akbard9823
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Roomdivyansh0kumar0
 
Gram Darshan PPT cyber rural in villages of india
Gram Darshan PPT cyber rural  in villages of indiaGram Darshan PPT cyber rural  in villages of india
Gram Darshan PPT cyber rural in villages of indiaimessage0108
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 

Recently uploaded (20)

定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
sasti delhi Call Girls in munirka 🔝 9953056974 🔝 escort Service-
sasti delhi Call Girls in munirka 🔝 9953056974 🔝 escort Service-sasti delhi Call Girls in munirka 🔝 9953056974 🔝 escort Service-
sasti delhi Call Girls in munirka 🔝 9953056974 🔝 escort Service-
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Person
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
 
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...
Sushant Golf City / best call girls in Lucknow | Service-oriented sexy call g...
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
 
Gram Darshan PPT cyber rural in villages of india
Gram Darshan PPT cyber rural  in villages of indiaGram Darshan PPT cyber rural  in villages of india
Gram Darshan PPT cyber rural in villages of india
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 

Restriction Rules(制限ルール) 調べてみた

  • 2. 自己紹介 はたもと たかし 畑本 貴史 株式会社チームスピリット エンジニア TSFチーム(製品開発) こんな感じ • Salesforceひとすじ早10年 • AIアプリコンテスト2018 優勝チーム(ロボホンズ) • Salesforce Developer Group Tokyo 運営
  • 3. Summer’21新機能の中でこんなものが Control Access to Sensitive Records with Restriction Rules (Now in Beta) https://developer.salesforce.com/ blogs/2021/05/control-access-to- sensitive-records-with-restriction- rules-now-in-beta.html → Restriction Rules(制限ルー ル)による機密レコードへのアク セス制御
  • 4. Summer’21新機能の中でこんなものが Control Access to Sensitive Records with Restriction Rules (Now in Beta) https://developer.salesforce.com/ blogs/2021/05/control-access-to- sensitive-records-with-restriction- rules-now-in-beta.html → Restriction Rules(制限ルー ル)による機密レコードへのアク セス制御 組織の標準設定 + 追加の共有 (共有ルール、手動共有) 左記の設定 - 制限ルール
  • 5. Summer’21新機能の中でこんなものが Control Access to Sensitive Records with Restriction Rules (Now in Beta) https://developer.salesforce.com/ blogs/2021/05/control-access-to- sensitive-records-with-restriction- rules-now-in-beta.html → Restriction Rules(制限ルー ル)による機密レコードへのアク セス制御 組織の標準設定 + 追加の共有 (共有ルール、手動共有) 左記の設定 - 制限ルール 可視性の 「引き算」が できる!?
  • 6. もう少し調べてみた Without restriction rules, users who have access to an account can see its contracts, tasks, and events, even when the organization-wide default is set to Private. For custom objects, users can see all of their child records. Restriction rules allow you to define which users see which records in Lightning Experience for custom objects, contracts, tasks, and events and configure truly “Private” access for these objects. Creating, editing, and deleting restriction rules are only available via the Tooling and Metadata APIs.
  • 7. もう少し調べてみた Without restriction rules, users who have access to an account can see its contracts, tasks, and events, even when the organization-wide default is set to Private. For custom objects, users can see all of their child records. Restriction rules allow you to define which users see which records in Lightning Experience for custom objects, contracts, tasks, and events and configure truly “Private” access for these objects. Creating, editing, and deleting restriction rules are only available via the Tooling and Metadata APIs. • 適用できるオブジェクト • Contract(契約)、task(ToDo)、event(行動) • カスタムオブジェクト • 組織のデフォルト共有設定が「非公開」であっても、これらのオブジェクトが子レコードになってい る場合は無制限に参照可能になってしまう。 • →子レコードの中でも更に詳細な閲覧制限を実現したい場合に使用する • 登録/更新/削除は以下の経路で行う • Tooling API • Metadata API
  • 8. 設定方法①:Tooling API Tooling API:JSON形式で定義を作成 →Tooling APIエンドポイントにPOSTで送る /services/data/v52.0/tooling/sobjects/RestrictionRule { "FullName":"restictionruleeventsrole", "Metadata": { "active":true, "description":"Allows active users to see only events owned by users of the same role.", "enforcementType":"Restrict", "masterLabel":"Events Owned by Same Role", "recordFilter": "Owner.RoleId = $User.UserRoleId", "targetEntity":"Event", "userCriteria":"$User.IsActive = true", "version":1 } }
  • 9. 設定方法②:Metadata API Metadata API:XML形式で定義ファイルを作成 <?xml version="1.0" encoding="UTF-8"?> <RestrictionRule xmlns="http://soap.sforce.com/2006/04/metadata"> <active>true</active> <description>Sales team can see only task records with specified record type</description> <enforcementType>Restrict</enforcementType> <masterLabel>Sales Team Record Type</masterLabel> <recordFilter>recordTypeId = '011xxxxxxxxxxxx'</recordFilter> <targetEntity>Task</targetEntity> <userCriteria>$User.ProfileId = '00exxxxxxxxxxxx'</userCriteria> <version>1</version> </RestrictionRule> →package.xmlとともにデプロイ <?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>restrictionRules</members> <name>RestrictionRule</name> </types> <version>52.0</version> </Package>
  • 10. 定義ファイルの内容について 属性の一覧 Tooling API属性 Metadata API属性 内容 Description description ルールの説明文 (任意入力) DeveloperName XMLファイル名 ルールの物理名(組織内で一意) EnforcementType enforcementType 「Restrict」を指定 (将来のための予約?) 他は「FieldRestrict」「Scoping」があるが使用不可 FullName XMLファイル名 Metadataファイルの名称 IsActive active 有効/無効フラグ Language なし? 対象言語を指定(?) MasterLabel masterLabel ルールの論理名 Metadata XMLファイル? メタデータxmlを直接指定? RecordFilter recordFilter 表示レコードの検索条件 TargetEntity targetEntity 対象オブジェクト ・契約、活動(ToDo、行動) ・カスタムオブジェクト UserCriteria userCriteria 対象ユーザの指定条件 Version version ルールのバージョン番号
  • 11. 想定されるユースケースとサンプル① • Allow Users to See Only Specified Record Type 特定のレコードタイプのみ表示される • recordFilter:RecordTypeId = ‘012xxxxxxxxxxxx’ (レコードタイプID) • userCriteria:$User.RoleId = ‘00exxxxxxxxxxxx‘ (ユーザのロールID) • Allow Users to See Only Records That They Own 所有者が自分であるレコードのみ表示される • recordFilter:OwnerId = $User.Id (所有者のID = ユーザID) • userCriteria:$User.ProfileId = ‘005xxxxxxxxxxxx’ (ユーザのプロファイルID) • Allow Users to See Only Records Owned by Same Role 自分と同じロールの人が所有するレコードのみ表示される • recordFilter:Owner.RoleId = $User.UserRoleId (所有者のロールID = ユーザのロールID) • userCriteria:$User.IsActive = true (有効ユーザすべて)
  • 12. 想定されるユースケースとサンプル② • Allow Users to See Only Records Owned by Same Profile 自分と同じプロファイルの人が所有するレコードのみ表示される • recordFilter:Owner.ProfileId = $User.ProfileId (所有者のプロファイルID = ユーザのプロファイルID) • userCriteria:$User.IsActive = true (有効ユーザすべて) • Allow Users to See Records Based on a Custom Field カスタム項目の値を使った制御 • recordFilter:Department__c = $User.Department (項目:Department__cの値 = ユーザの部署) • userCriteria:$User.UserType = ‘CSPLitePortal’ (ユーザライセンスが「CSP Lite Portal」)
  • 13. 詳細仕様 • recordFilter の仕様 • レコードが持つ項目に対し条件指定できる ※参照関係の1階層先まで辿れる • 比較対象にユーザ項目を指定可能 • 条件は1つのみ(And/Orは不可) • userCriteria の仕様 • ユーザ項目に対し条件指定できる • 条件は1つのみ(And/Orは不可) • Restriction Rule の仕様 • 組織のエディションによって上限が異なる • EnterPrise、Developer:1オブジェクトあたり2個 • Performance、Unlimited: 1オブジェクトあたり5個 • その中で、同一ユーザに対して指定できるルールは1個 • 同一ユーザを巻き込まないルール設計が必要 • システム管理者の操作、システムコンテキスト処理(Apex、フロー)には影響しない
  • 14. まとめ:Restriction Ruleと共有ルールの違い 比較要素 Restriction Rule 共有ルール 直接共有 対象 契約、ToDo、行動 カスタムオブジェクト 所有者のあるレコード (主従関係の子レコードを除く) 前提条件 なし 組織のデフォルト設定が「非公開」「参照の み」 対象レコード指 定 クエリ構文で指定 ・レコードの項目 選択リストで指定 ・所有者の所属ロー ル、公開グループ ・ユーザの項目 ID直接指定 (共有設定の分だけ レコード登録) 対象ユーザ指 定 クエリ構文で指定 ・ユーザの項目 ・ロール ・プロファイル 選択リストで指定 ・所有者の所属ロー ル、公開グループ ・ユーザID直接指定 ・ロール ・公開グループ 効果 ・条件を満たすレコー ドのみにアクセスでき る ・条件を満たさない場 合、共有設定に関わ らずアクセスできない ・条件を満たすレコードにアクセスできる ・複数の共有ルールのいずれか、あるいは直 接共有されていれば参照・編集権限を持つ
  • 18. 参考資料 • Salesforce Developer Blog • 紹介記事 • https://developer.salesforce.com/blogs/2021/05/control-access-to-sensitive-records-with-restriction- rules-now-in-beta.html • Restriction Rules Developer Guide (Beta) • Restriction Rulesのリファレンス • https://developer.salesforce.com/docs/atlas.en- us.restriction_rules.meta/restriction_rules/meta_restrictionrule.htm • Trailblazer Communityグループ:Restriction Rules Beta • ベータ参加ユーザ向けのグループ • https://trailhead.salesforce.com/ja/trailblazer-community/groups/0F94S000000Gwle#discussion