SFDX CLIとMetadata APIを利用したData Cloudメタデータ移行ガイド


Salesforce Data Cloud メタデータとプロセス定義のデプロイ手順 (SFDX CLI & Metadata API)

SalesforceのData Cloudメタデータとは、Salesforce環境を構成するオブジェクトやフィールド、カスタム設定に加え、データモデルやプロセス定義など、環境全体の構成要素を指します。これらの要素を、SandboxやProduction、Data Cloud環境間で適切に移行することは、安定した開発サイクルと運用のために非常に重要です。本記事では、SFDX CLIとMetadata APIを利用して、Data Cloudメタデータおよびプロセス定義を効率よく移行するためのステップとベストプラクティスをご紹介します。


1. 移行前の前提条件

  • アクセス権限:
    移行元と移行先の両方のSalesforce環境で十分な権限があること。

  • Salesforce CLIのインストール:
    最新のSFDX CLIがインストールされ、設定されていること。

  • sfdx-project.jsonの設定:
    プロジェクトルートのsfdx-project.jsonで、正しいsfdcLoginUrl(Sandboxの場合はhttps://test.salesforce.com、Productionの場合はhttps://login.salesforce.com)とsourceApiVersionが設定されていること。

  • Advanced Google Services:
    Metadata APIを使用する場合、Salesforce CLIおよび必要なCI/CDパイプラインが準備されていること。


2. 移行に使用できる主な手法

2.1 Salesforce CLI(Metadata APIベース)を使用する方法

  • SFDXプロジェクトの作成:
    VS Code、Salesforce CLI、Salesforce Extension Packを利用し、標準的なSFDXプロジェクトを作成します。

    • プロジェクト内のmanifestフォルダにはpackage.xmlを配置し、移行対象のメタデータを明示します。

  • 組織の認証:
    移行元および移行先のオーグ(例:SandboxTDX1とSandboxTDX2)をSFDX CLIに認証します。

  • データクラウドメタデータの特定:
    Datastream、DLO、DMO、Calculated Insights、Data Transforms、Segmentsなど、移行が必要なコンポーネントと相互依存関係を明確にします。

  • DevOps Datakitの作成:
    移行元の組織で、Data Cloud SetupのDeveloper Tools→DatakitsでDevOpsタイプのDatakitを作成し、移行対象のメタデータやプロセス定義を追加します。

    • 作成時には対象のDataspace(例:North America)を選択し、依存関係のあるコンポーネントのデプロイ順序を正しく設定します。

  • Manifest (package.xml) のダウンロード:
    Datakit UIからmanifestをダウンロードし、プロジェクトに取り込みます。

  • CLIを利用したメタデータの取得:
    以下のコマンドを使い、移行対象のメタデータをSFDXプロジェクトに取り込みます:

    sf project retrieve start --manifest manifest/package.xml
    
  • GitHubとの統合:
    プロジェクトをGitHubに統合し、データクラウドメタデータの単一のソース・オブ・トゥルースとして管理します。

  • ターゲット組織へのデプロイ:
    移行先の組織(例:SandboxTDX2)をデフォルトとして設定し、以下のコマンドでデプロイします:

    sf project deploy start --manifest manifest/package.xml
    
  • 後処理:
    新たなコネクションが「非アクティブ」状態でデプロイされる場合、対象のコネクション(例:CRM接続、S3接続)を手動で再認証・再有効化し、再度デプロイを実行します。

2.2 Change Sets(UIベース)の利用

  • 手順:

    1. 移行先組織で「Allow Inbound changes」を有効にする。

    2. 移行元組織で、Outbound Change Setを作成し、「datapackagekitdefinition」コンポーネントを追加。

    3. 依存関係を確認し、すべてを含めたChange Setを移行先組織へアップロード。

    4. 移行先組織でChange Setを検証し、デプロイを実行。


3. プロセス定義とプラットフォーム設定の移行

  • Data Cloudメタデータは、DevOps Datakitに含める必要がありますが、FlowやReportなどのプラットフォーム設定は、Metadata APIを使用して個別に取得、デプロイすることが可能です。


4. デプロイのステップ

  1. SFDXプロジェクト作成と設定
    sfdx-project.jsonでログインURLとAPIバージョン(例: 56.0または最新バージョン)を正しく設定。

  2. 組織の認証
    source orgとtarget org双方をCLIで認証する。

  3. Dataspaceの確認
    移行元のDataspaceと同じプレフィックスがtarget orgにも存在することを確認。存在しない場合はtarget orgに手動で作成。

  4. DevOps Datakitの作成と公開順序の設定
    Datakitを作成し、各コンポーネントのデプロイ順序を正確に設定。

  5. ManifestファイルのダウンロードとCLIでの取得
    UIからダウンロードしたpackage.xmlを使って、移行対象のメタデータをSFDXプロジェクトに取り込み、GitHubなどで管理。

  6. ターゲット組織へのデプロイ
    CLIを利用してデプロイ後、必要なコネクションを再認証する。

  7. 追加のプラットフォーム設定のデプロイ
    FlowやReportなどは別途、Metadata API CLIコマンドで移行。


5. まとめ

Salesforce Data Cloudメタデータおよびプロセス定義の移行は、効率的なSFDX CLIMetadata API、もしくはChange Setsを組み合わせた多段階のプロセスにより、シームレスかつ正確に実行できます。

  • 移行元と移行先の環境間でDataspaceの整合性を確保することが重要です。

  • DevOps Datakitを活用することで、メタデータとプロセス定義の依存関係を考慮した正しいデプロイ順序が実現され、トラブルシューティングも容易になります。

これらのベストプラクティスに従うことで、環境間の変更や更新に伴うリスクを最小限に抑え、Salesforce環境の一貫性と信頼性を維持することができます。

コメント