メタデータ API の使用事例
メタデータ API の使用方法を理解するために、自分が Zephyrus Relocation Services の Salesforce 開発者であると想像してみましょう。Zephyrus は、国内の従業員と国際的な従業員の再配置プロセスを企業が開発できるように支援するタレントモビリティ企業です。Zephyrus は、アジアと南米にも進出しようとしており、両方の地域にオリエンテーションサービスを追加したいと考えています。オリエンテーションサービスには、国内での住居と学校の探索、エリアツアー、交通機関の情報に関する支援が含まれます。
開発チームは、これらの新しいオリエンテーションサービスを既存の組織に追加する必要があります。国内オリエンテーションなどの商品は、Salesforce でカスタマイズできるオブジェクトです。オブジェクトを追加して組織をカスタマイズしたときは、組織のメタデータを変更します。カスタム商品を作成する開発プロセスでは、メタデータ API が役立ちます。
開発プロセスでのメタデータ API の使用
現在 Zephyrus は、本番メタデータとオリエンテーションサービスを他の国々に合わせて調整しています。新しい商品カスタマイズの作成を開始するには、別のリポジトリにある、Zephyrus の本番 Salesforce 組織の既存の設定が必要です。本番組織の設定は、すべてメタデータです。本番メタデータをリポジトリに保存するには、本番メタデータを Zephyrus の本番組織からローカルファイルシステムに移動します。
既存の設定に影響を与えずに開発上の変更を行うには、メタデータ API を使用してメタデータをローカルファイルシステムに移動します。次に、ローカルファイルシステムから開発用の共有可能リポジトリにメタデータを転送します。
Zephyrus のすべてのメタデータを取得すると、ローカルでもスクラッチ組織でも開発を行うことができます。スクラッチ組織は、データを持たない破棄可能な Salesforce 組織です。多くの開発者は、両方のツールを一緒に使用します。ファイルの読み込みと変更は、スクラッチ組織よりローカルで行った方がはるかに高速です。多くの場合、開発者は、カスタマイズをローカルファイルシステムで作成し、テストをスクラッチ組織で実行します。テストと開発を行うときは、ローカルファイルシステムとスクラッチ組織の間で変更を移動します。
スクラッチ組織へのメタデータ変更の移動、およびスクラッチ組織からのメタデータ変更の移動
スクラッチ組織とローカルファイルシステムを併用して、開発とメタデータ変更のテストを行うことができます。ローカルで行った変更をスクラッチ組織に移動したり、逆にスクラッチ組織から移動したりするには、メタデータ API を使用します。
Zephyrus 開発チームの残りのメンバーは、独自のカスタマイズを所有しています。自分独自のカスタマイズを開発してテストしたら、チームが変更を統合し、Sandbox でテストを実行します。Sandbox は、開発とインテグレーションのテストのために使用される開発環境です。
インテグレーションポイン���での Sandbox へのメタデータの移動
開発時は、変更の統合、テスト、チームとのコラボレーションを行うために、メタデータ API を使用して、メタデータを Sandbox に移動します。
チームがオリエンテーションサービスのカスタマイズを作成して、テストを完了したら、メタデータ API を使用して、それらのコンポーネントを本番組織にリリースします。
開発サイクルの最終ステップでは、メタデータ API を使用して、Git などのソース制御システムから本番組織にカスタマイズを移動します。
その他の使用事例
本番組織の分割やマージなど Salesforce での変更が大規模になる場合は、メタデータ API を使用します。
たとえば、Zephyrus は、国内の再配置を専門に行う部門と、国際的な再配置を担当する部門の 2 つに会社を分割したいと考えています。この場合、Zephyrus の Salesforce 組織を分割し、各組織に属するメタデータを決定します。メタデータ API によって、メタデータを新しい組織に移動できます。
次に、Zephyrus が Apollo Global Relocation を買収し、両社が Salesforce を使用していると仮定しましょう。情報を統合するには、メタデータ API を使用して、Apollo 組織を Zephyrus 組織にマージします。
Salesforce 組織のマージや分割など大規模な変更では、メタデータ API を使用してメタデータを移動します。
開発プロセスでメタデータ API を使用すると、別の API コールでは規模が大きすぎて処理できないような大規模な設定変更も行えます。たとえば、Zephyrus は、グローバルなクライアントのために多くの言語をサポートしています。オブジェクトに応じてさまざまな言語を翻訳するには、各言語のオブジェクト翻訳ファイルを含めます。
組織にリリースする変更が大きい場合は、他の API よりメタデータの方が適しています。