Apex コードのメタデータアクセス
Apex の Metadata 名前空間を使用して、パッケージ内のメタデータにアクセスします。
インストールまたは更新時にパッケージでメタデータを取得または変更しなければならない場合があります。Apex の Metadata 名前空間では、メタデータ型を表すクラスが提供されるほか、メタデータコンポーネントを取得して登録者組織にリリースするのに使用できるクラスが提供されます。次の考慮事項は Apex のメタデータに適用されます。
- Apex コードでメタデータコンポーネントを作成、取得、更新できますが、コンポーネントの削除はできません。
- 現在、Apex 内のカスタムメタデータ型のレコードとページレイアウトにアクセスできます。
- Salesforce によって承認されていない管理パッケージでは、登録者組織で [未認定 Apex パケージバージョンからの Apex によるメタデータリリースの許可] 組織設定が有効にされていない限り、登録者組織のメタデータにアクセスできません。この組織設定は、管理パッケージをテストまたはベータリリースする場合に使用します。
インストールまたは更新時にパッケージでメタデータにアクセスする場合、またはメタデータにアクセスするカスタム設定インターフェースがパッケージに含まれている場合、ユーザに通知する必要があります。メタデータにアクセスするインストールの場合、パッケージの説明でユーザに通知します。登録者組織のメタデータを変更する機能がパッケージにあることを、この通知で顧客に知らせる必要があります。
独自の通知を作成することも、次のサンプルを使用することもできます。
このパッケージは、インストール先の Salesforce 組織内にあるその名前空間以外のメタデータにアクセスして変更する可能性があります。
Salesforce がセキュリティレビューで通知を検証します。
詳細は、『Apex 開発者ガイド』の「メタデータ」を参照してください。