高機能データ移行ツール(SFDMU)使ってみた!

Salesforce組織間のデータ移行は面倒くさい

Salesforce組織から別のSalesforce組織にデータを移行したい場合、どのような手順が取れるでしょうか。
パッと思い浮かぶのは以下かと思います。

①Dataloader等を使用して、移行元組織からレコードをCSVで出力する
②CSVデータをクレンジングする
③Dataloader等を使用して、移行先組織にレコードを挿入する
④必要なオブジェクト分①~③を繰り返す

ご存知の通り、オブジェクトには参照(主従)関係が設定されていることがあります。
これも綺麗に移行する場合、②でのクレンジング作業が結構複雑になります。
更に、データの移行順番にも気を使わなければなりません。
はい、とても面倒くさいですね。

できるならもっと楽に移行したいですよね?
そんな願いを叶えてくれる夢のようなプラグインが「高機能データ移行ツール(以下SFDMU)」です。

SFDMUとは?

SFDMUはSalesforce CLIのプラグインの1つで、Salesforceへのデータ転送ができるものです。
以下のようなデータ転送ができるようになります。

  • CSVデータを用いたデータ転送
  • 環境から環境へのデータ転送
  • データの一部にマスキングを施すデータ転送
  • 複数オブジェクトのデータ転送
  • データの親子関係を維持したデータ転送

これらのデータ転送がコマンド1回でできるようになります!

SFDMUを使ってみる

それではSFDMUを実際に使ってみましょう。

SFDMUの導入

SFDMUの導入方法は2通りありますが、今回は楽な方を使います。
※前提条件として、SFDXのインストールが必要です
以下のコマンドを実行します。

# 既に古いSFDMUがインストールされていて、アップデートしたい場合は既存のバージョンをアンインストール
$ sfdx plugins:uninstall sfdmu

# 最新版のSFDMUをインストール
$ sfdx plugins:install sfdmu

Installing plugin sfdmu… installed vx.xx.x」(xxはバージョン値)
こんなメッセージが出ていればOKです。

SFDMUの実行

SFDMUは以下の2ステップで実行されます。
①設定ファイル「export.json」を作成する
②「sfdx sfdmu:run」コマンドを実行する
※オプションを付ける必要有

まずは設定ファイルであるexport.jsonを作っていきます。
Dataloaderでもできることをやってもなんだかなーという感じですので、
今回は組織から組織へ、取引先と取引先責任者をリレーションも含めて一括でデータ転送する想定で進めます。

{
    "objects": [
        { 
            "query": "SELECT Id, Name FROM Account", 
            "operation": "Upsert", 
            "externalId": "Name"
        },
        { 
            "query": "SELECT Id, LastName, AccountId FROM Contact", 
            "operation": "Upsert", 
            "externalId": "Name"
        }
    ]
}

これがexport.jsonの基本形になります。
【query】
データ取得のSOQLを記載します。今回はお試しなので最低限の項目で作成してます。
SOQLなのでWHEREで絞ったりもできます。
【operation】
SOQLで取得したデータをどう処理するのかを記載します。
お馴染みのDMLが使えます。
【externalId】
外部IDを記載します。
SFDMUではオブジェクト定義で外部IDを設定していない項目でも外部IDのように使うことができます。

export.jsonができましたので、コマンドを使ってデータ転送をします。
組織間でのデータ転送になりますので、コマンドは以下のようになります。

# SOURCEUSERNAME データ転送元環境のユーザ名(xxxxx@yyy.zzz)
# TARGETUSERNAMEデータ転送先環境のユーザ名(xxxxx@yyy.zzz)
$ sfdx sfdmu:run --sourceusername SOURCEUSERNAME --targetusername TARGETUSERNAME

これで取引先と取引先責任者が紐づいた状態で挿入されます。簡単でしょう?

最後に

Salesforce開発では何かと問題になってくる開発環境やテスト環境のデータ問題ですが、SFDMUを使えばDataloaderよりも遥かに少ない手数で解決することができます。
また、CLIであるためデータ連携にも使えるのではないかと思ってます。

最後に、弊社にはSalesforceのスペシャリストが多数在籍しております。
何かお困りごとがございましたら、下記ボタンからお気軽にご相談くださいませ。
お問い合わせはこちら

Pardotフォームの最適解

Pardotのフォームをきれいにより使いやすく。ADX ConsultingのDOTEFOならPardotで作られたフォームのCVRを改善できます。

詳細はこちら
真島大輔

真島大輔

技術と技術の融合で、「やりたい」の最適解を導く

新着記事

  • 関連記事
  • おすすめ記事
  • 特集記事

Search

PAGE TOP