この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

SetupEntityAccess

親の PermissionSet の有効化された設定エンティティアクセス権設定 (Apex クラスへのアクセスなど) を表します。このオブジェクトは、API バージョン 25.0 以降で使用できます。

ユーザにエンティティへのアクセス権を付与するには、ユーザに割り当てられる PermissionSet に適切な SetupEntityAccess レコードを関連付けます。

サポートされているコール

create()delete()describeSObjects()query()retrieve()

特別なアクセスルール

Spring ’20 以降、このオブジェクトにアクセスできるのは、「設定・定義を参照する」権限を持つユーザのみとなります。

項目

項目名 詳細
ParentId
reference
プロパティ
Create、Filter、Group、Sort
説明
エンティティの親 PermissionSet の ID。
これはリレーション項目です。
リレーション名
Parent
リレーション種別
Lookup
参照先
PermissionSet
SetupEntityId
reference
プロパティ
Create、Filter、Group、Sort
説明
Apex クラスや Visualforce ページなど、アクセス権が有効化されているエンティティの ID。
SetupEntityType
picklist
プロパティ
Filter、Group、Nillable、Restricted picklist、Sort
説明
アクセス権が有効化されている設定エンティティのタイプ。有効な値は、次のとおりです。
  • Apex クラスの ApexClass
  • Visualforce ページの ApexPage
  • API バージョン 28.0 以降では、OAuth 接続アプリケーションの ConnectedApplication
  • API バージョン 31.0 以降では、カスタムアプリケーションの CustomPermission
  • API バージョン 28.0 以降では、サービスプロバイダの ServiceProvider
  • API バージョン 28.0 以降では、アプリケーションの TabSet
  • API バージョン 48.0 以降では、カスタム設定およびカスタムメタデータ型の CustomEntityDefinition

使用方法

SetupEntityAccess は PermissionSet オブジェクトの子であるため、使用方法は、FieldPermissions および ObjectPermissions などの他の PermissionSet 子オブジェクトと似ています。

たとえば、次のコードでは、アクセス権が有効化されている任意の設定エンティティへのアクセス権を付与するすべての権限セットが返されます。
1SELECT Id, ParentId, Parent.Name, SetupEntityId
2FROM SetupEntityAccess
次のコードでは、Apex クラスへのアクセス権のみを付与する権限セットが返されます。
1SELECT Id, ParentId, Parent.Name, SetupEntityId
2FROM SetupEntityAccess
3WHERE SetupEntityType='ApexClass'
次のコードでは、任意の設定エンティティへのアクセス権を付与し、プロファイルによって所有されていない権限セットが返されます。
1SELECT Id, ParentId, Parent.Name, SetupEntityId
2FROM SetupEntityAccess
3WHERE ParentId
4IN (SELECT Id
5   FROM PermissionSet
6   WHERE isOwnedByProfile = false)
特定の設定エンティティへのアクセス権がある権限セットのみを返すこともできます。これを実行するには、親オブジェクトを照会します。たとえば、このコードでは、helloWorld Apex クラスへのアクセス権を付与するすべての権限セットが返されます。
1SELECT Id, Name,
2   (SELECT Id, Parent.Name, Parent.Profile.Name
3   FROM SetupEntityAccessItems)
4FROM ApexClass
5WHERE Name = 'helloWorld'
ConnectedApplicationServiceProvider、または TabSet へのアクセス権がある権限セットを SetupEntityId を使用して返すことはできますが、これらの SetupEntityType 項目へのアクセス権がある権限セットを、NameDescription などの他の AppMenuItem 属性を使用して返すことはできません。たとえば、ユーザに社員募集アプリケーションへのアクセス権があるかどうかを調べるには、2 つのクエリを実行します。まず、AppMenuItem ID を取得する次のクエリを実行します。
1SELECT Id, Name, Label
2FROM AppMenuItem
3WHERE Name = 'Recruiting'
このクエリから AppMenuItem ID 02uD0000000GIiMIAW が返されるとします。この ID を使用して、ユーザに社員募集アプリケーションへのアクセス権があるかどうかを調べる次のクエリを実行できます。
1SELECT Id, SetupEntityId, SetupEntityType
2FROM SetupEntityAccess
3WHERE ParentId
4IN
5   (SELECT PermissionSetId 
6   FROM PermissionSetAssignment
7   WHERE AssigneeId = '005D0000001QOzF')
8AND (SetupEntityId = '02uD0000000GIiMIAW')