EntitySubscription
ユーザはレコードまたは他のユーザを登録できます。レコードへの変更とユーザからの更新は、ユーザのホームページの Chatter フィードに表示されます。これは、Salesforce で他のユーザやレコードに加えられた変更の最新状況を把握するのに役立ちます。フィードは、API バージョン 18.0 以降で使用できます。
サポートされているコール
create()、delete()、describeSObjects()、getDeleted()、getUpdated()、query()、retrieve()
項目
使用方法
レコードおよびユーザをフォローしているときは、次の点に留意してください。
- ユーザがフォローできるのは表示できるレコードのみです。
- ユーザは、該当するレコードへのアクセス権があれば、他のユーザがフォローしているレコードを表示できます。
- システム管理者と「すべてのユーザの編集」権限を持つユーザは、レコードへの参照アクセス権を持つユーザがレコードをフォローできるように設定できます。
- システム管理者と「すべてのユーザの編集」権限を持つユーザは、ユーザがレコードのフォローを停止するように設定できます。
- トピックのフォローは、API バージョン 29.0 以降で使用できます。このため、トピック ID の値は ParentId 項目でサポートされるようになりました。
-
ユーザを無効化する場合、ユーザが ParentId 項目または SubscriberId 項目に関連付けられているすべての EntitySubscription、つまり、ユーザによる他のユーザの登録および他のユーザによるユーザの登録はすべて論理削除されます。ユーザが再有効化されると、登録も復元されます。ただし、一度に複数のユーザを無効化し、これらのユーザが互いにフォローしている場合は、登録は物理削除されます。この場合、ユーザ対ユーザの EntitySubscription は 2 回削除 (物理削除) されます。このような登録はユーザの再有効化で復元することはできません。
EntitySubscription を指定して query() を使用する場合
- 次の SOQL 制限に注意してください。ログインしたユーザに「すべてのデータの参照」権限がある場合、SOQL の制限はありません。この権限がない場合は、LIMIT 句に 1,000 レコード以下を指定してください。
- WHERE 句を使用したクエリでは、EntitySubscription オブジェクトに対して項目を基準に条件検索のみ実行できます。
- ユーザ共有が有効になっていて、クエリ実行ユーザがシステム管理者でない場合、ParentId または SubscriberId で SOQL クエリを制限する必要があります。制限しないと、クエリの実行時の動作が不明確になります。つまり、結果セットが不完全、または呼び出しごとに異なる可能性があります。クエリを制限しない場合、結果セットの各行で親と対象の両方に対してアクセスチェックが実行されるため、クエリが完了する前に、非管理ユーザに適用される共有チェック制限を超える可能性が高くなります。SOQL クエリを実行する代わりに、Connect REST API を使用して EntitySubscription データを照会することをお勧めします。
- 「すべてのデータの編集」権限のないユーザの場合
- オブジェクトのレコードをフォローしているユーザを表示するには、ParentId 項目に関連付けられているオブジェクトへの参照権限が必要です。
- ORDER BY 句を使用したクエリは、EntitySubscription オブジェクトの項目で並び替える場合にのみ使用できます。たとえば、登録が Account レコードに関連する場合、クエリは ORDER BY ParentId を実行できますが、ORDER BY Account.Name は実行できません。
- クエリを実行するとき、一致するすべての登録を取得できない場合があります。これらのユーザの場合、クエリは最大 500 件のレコードの表示基準を評価し、クエリが長時間実行される可能性を削減します。ユーザが CEO の登録を表示するクエリを実行する場合、クエリは大量のレコードをスキャンする可能性があります。クエリはスキャンされた最初の 500 件のレコードでの一致のみを返します。ユーザに表示されている登録より多くの登録がある可能性がありますが、それらは返されません。この問題を解消するため、可能な場合、WHERE 句を使用して、クエリの範囲を絞ることをお勧めします。
サンプル — SOQL
次の SOQL クエリでは、登録者がフォローしているすべての取引先のうち、従業員数が 10 名を超える取引先の登録を返します。
1SELECT Id
2FROM EntitySubscription
3WHERE SubscriberId = '005U0000000Rg2CIAS'
4AND ParentId IN (
5 SELECT Id FROM Account
6 WHERE NumberOfEmployees > 10
7)
8LIMIT 200