Salesforceの開発において、組織間での変更を適用する際に「変更セット(Change Set)」を利用すると、画面操作による移行が可能になります。特に、サンドボックス環境から本番環境へ変更を適用する場合に便利なツールです。本記事では、変更セットの概要について詳しく解説します。
目次
変更セットとは?
変更セットは、Salesforceのメタデータ(カスタムオブジェクト、Apexクラス、レイアウト、ワークフロー、プロファイル設定など)を移行するためのツールであり、特に「Sandbox」から「本番環境」への移行に適しています。変更セットを利用することで、マウス操作やクリックによる設定変更だけで環境間の変更を適用できます。
メリット
- コードなしで画面操作による移行が可能なため、開発者以外の管理者でも扱いやすい
- 承認フロー(管理者などがテスト環境での動作確認やステークホルダーとの確認後に本番反映を承認する工程)が組み込まれており、本番適用前に変更内容を確認できる
- 標準機能として提供されているため、追加コストが不要
デメリット
- 依存関係の管理が手動であるため、コンポーネントの選択ミスが発生しやすい
- 大規模な変更には不向き(複雑なリリースにはSalesforceの開発・管理を効率化するためのコマンドラインツールや自動化されたテストとリリースプロセスを活用するのが望ましい)
- 変更履歴の追跡が困難であり、バージョン管理を明確にするのが難しい
変更セットの主な機能
- コンポーネントの追加
- 移行したいメタデータ(Apexクラス、カスタムオブジェクト、レイアウト、フローなど)を選択し、変更セットに追加
- 依存関係があるコンポーネントは手動で追加する必要がある
- 設定項目や権限セットなどの設定情報も移行可能
- 変更セットの送信と受信
- 作成した変更セットを本番環境や別のサンドボックスに送信
- 送信された変更セットは「変更セットの受信」画面で確認可能
- 送信後の変更セットは編集不可のため、適切な内容を含める必要がある
- 適用前の検証
- 変更セット適用前に「検証」を実行し、適用可能かをチェック
- Apexテストも同時に実行できるため、不具合がないか事前確認が可能
- エラーが発生した場合、修正後に再度送信・適用する必要がある
変更セットを使わないと?
変更セットを利用しない場合、以下のような方法で環境間の変更を適用することになります。
- 手動での変更適用
- 本番環境で直接、同じカスタマイズや設定変更を行う
- 人為的ミスが発生しやすく、適用漏れのリスクがある
- メタデータAPIを使用する
- Salesforceの開発・管理を効率化するためのコマンドラインツール(SFDX)を利用して移行
- 開発者向けのツールであり、技術的な知識が必要
- 変更管理ツール(CI/CD)の活用
- 自動化されたテストとリリースプロセスを用いて変更を適用
- 一貫性を保ちやすいが、セットアップや運用のハードルが高い
変更セットを使わない方法では、作業の正確性や管理のしやすさが課題となるため、適用する変更の規模やチームのスキルレベルに応じた適切な手段を選択する必要があります。
利用シナリオ
変更セットは以下のようなケースで有効に活用できます。
- 小規模な変更を適用する場合
- 例:新しいカスタム項目の追加やレイアウトの変更
- コードを使わずにマウス操作やクリックによる設定変更で移行したい場合
- 例:設定変更やフロー(プロセスビルダー)の適用
- 承認プロセスを経由してリリース管理を行いたい場合
- 例:管理者が変更を準備し、テスト環境で確認後に本番環境へ適用
まとめ
Salesforceの変更セットは、小規模なリリースやマウス操作やクリックによる設定変更を好むユーザーにとって便利な機能です。ただし、
- 適用前に必ず検証を行う
- 依存関係を整理する
- 変更セットの内容を明確に管理する
ことで、よりスムーズなリリースが可能になります。
大規模なリリースや頻繁なリリースが必要な場合は、Salesforceの開発・管理を効率化するためのコマンドラインツールや自動化されたテストとリリースプロセスを活用したリリース管理を検討するのが望ましいでしょう。