Apex による共有管理の再適用
開発者は Apex 共有管理を再適用するための Apex 一括処理クラスを記述できます。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic |
| 使用可能なエディション: Professional Edition、Enterprise Edition、Performance Edition、Unlimited Edition、Developer Edition、および Database.com Edition |
| 必要なユーザー権限 | |
|---|---|
| Apex による共有管理の再適用クラスを関連付ける | 「Apex 開発」 |
| Apex による共有管理の再適用を実行する | 「Apex 開発」 または 「共有の管理」 |
開発者は Apex 共有管理を再適用するための Apex 一括処理クラスを記述できます。これらのクラスを詳細ページでカスタムオブジェクトと関連付けて、ロックの問題でアプリケーションのロジックによって定義されたユーザーに Apex がアクセス権を提供できない場合にそのクラスを実行できます。Apex 共有の再適用は、コーディングエラーによる表示の問題の解決にも役立ちます。たとえば、ユーザーが参照できるはずのレコードにアクセスできないというコーディングエラーを開発者が修正した場合、その修正の適用は、コード変更後に作成されたレコードのみに限定される可能性があります。修正が既存のレコードにも確実に適用されるように、開発者は、Apex 共有の再適用を実行して、すべてのレコードでの共有を検証できます。
Apex 共有の再適用は、カスタムオブジェクトの詳細ページから実行できます。Database.executeBatch メソッドを使用して、プログラムで実行することもできます。また、カスタムオブジェクトに対する組織のデフォルトアクセスレベルが更新されるたびに、カスタムオブジェクトに定義された Apex の再適用クラスが自動的に実行されます。
Salesforce では、組織のデフォルトアクセスレベルが変更されると、オブジェクトの全レコードの共有が自動的に再適用されます。再適用の対象として、共有ルールによって付与されるアクセス権も含まれます。また、付与されたアクセス権が余分である場合は、すべての共有種別が削除されます。たとえば、オブジェクトの共有モデルが「非公開」から「公開/参照のみ」に変更されると、ユーザーに「参照のみ」アクセス権を付与する共有の直接設定が削除されます。
- カスタムオブジェクトの管理設定から [Apex 共有再適用] に移動します。
-
このオブジェクトの Apex 共有を再適用する Apex クラスを選択します。選択するクラスは、
Database.Batchableインターフェースを実装している必要があります。同じ Apex クラスを、同じカスタムオブジェクトと複数関連付けることはできません。 - [保存] をクリックします。
Apex による共有管理と再適用クラスの作成についての詳細は、『Apex 開発者ガイド』を参照してください。
Apex による共有管理の再適用クラスをカスタムオブジェクトと関連付ける手順は、次のとおりです。
Apex 共有再適用を実行するには、カスタムオブジェクトの管理設定から [Apex 共有再適用] に移動し、[新規] をクリックします。
Apex 共有再適用を使用する場合は、次のことに注意してください。
- 共有再適用を拡張する Apex コードは、最大 500 万件のレコードを処理できます。この Apex コードが 500 万件を超えるレコードに影響する場合、そのジョブはただちに失敗します。
- Apex ジョブキューで、Apex 共有の再適用の状況を監視できます。
- カスタムオブジェクトごとに最大 5 件の Apex 共有の再適用を関連付けることができます。
- Apex 共有の再適用を標準オブジェクトと関連付けることはできません。

