Salesforceを使ってアプリケーションを開発する際、組織固有の設定を管理する方法として「カスタム設定」がよく用いられてきました。
しかし、近年では新たな選択肢として「カスタムメタデータ型」が利用できるようになりました。
今回はこのカスタムメタデータ型の機能紹介と、いつこれを利用すべきかについて深掘りします。
カスタムメタデータ型とは
カスタムメタデータ型は、Salesforceが提供するメタデータフレームワークの一部で、開発者が自分自身のメタデータタイプを定義できる強力な機能です。
これはアプリケーションの設定やビジネスロジックに関する情報を保存するために用いられます。
カスタムメタデータ型のレコードはメタデータとして扱われ、パッケージ化して別の組織に移行することも可能です。
つまり、Salesforce CLI 等で別の組織へのデプロイの際に値が保持されるので、特定の固定値を管理するのに非常に便利な機能です。
カスタムメタデータ型を利用すべき理由
カスタム設定も似たような目的で利用されますが、カスタムメタデータ型はさらに利点があります。
パッケージ化と移行
既に前章で説明した通りですが、カスタムメタデータ型の最大の利点は、そのレコードがメタデータとして扱われ、他の組織に簡単に移行できる点だと考えます。
これはカスタム設定にはない機能であり、デプロイメントプロセスを大幅に簡素化します。
SOQLとSOSLのサポート
カスタムメタデータ型は、通常のカスタムオブジェクトと同じようにSOQLやSOSLを使用してクエリすることが可能です。
これにより、より複雑なデータ操作ができ、Apex 上でのロジックでの利用も容易に行えます。
カスタム設定との使い分け
カスタム設定とカスタムメタデータ型は、多くのシナリオで類似の機能を提供します。
しかし、以下のような状況ではカスタムメタデータ型の利用が推奨されます。
※個人の見解です。お客様の要件やプロジェクトの性質によっては当てはまらない場合があります。
- 設定データの移行が必要な場合
アプリケーション設定を開発組織からテスト、本番環境へ簡単に移行する必要がある場合、カスタムメタデータ型が最適です。
- 複雑なクエリ操作が必要な場合
レコードに対する複雑なSOQLやSOSLクエリを行う必要がある場合は、カスタムメタデータ型が適しています。
一方、以下のような状況ではカスタム設定の利用が適しています。
- 大量のレコードに対する高速アクセスが必要な場合
カスタム設定はキャッシュメカニズムを利用するため、大量のレコードに対して高速にアクセスする必要がある場合には有利です。
- 設定データの頻繁な更新が必要な場合
カスタム設定はDML操作で更新することが可能です。
一方、カスタムメタデータ型のレコードは読み取り専用であり、メタデータAPIを使用してのみ更新可能です。
おわりに
今回はカスタムメタデータ型の特徴と利用すべき場面について解説しました。
Salesforce にはさまざまな機能があるので、引き出しを多く持っておくことは、円滑なソリューション検討に繋がります。
これらの選択肢を理解し、自分のビジネス要件に合わせて最適な方を選択しましょう。
コメント