EN

IMPACT LAB

インパクトラボ

Salesforceデータローダでの外部IDを利用した参照関係更新方法を理解する

Salesforce に大量の外部データを移行するケースを考えます。

外部データとの間に参照関係のある既存のオブジェクトがある際に、データローダを使って参照関係項目も更新する(=リレーションを張る)方法として次の二つを使うことができます。

  1. リレーション作成先オブジェクト(親オブジェクト)のSalesforce ID を取得し、これらをリレーション作成元オブジェクト(子オブジェクト)の参照関係項目の値として設定したCSVを作成しインポートする。
  2. リレーション作成先オブジェクト(親オブジェクト)に外部ID項目を設定し、これらをリレーション作成元オブジェクト(子オブジェクト)の参照関係項目の値として設定したCSVを作成しインポートする。

※ ここでの親子という表現は必ずしもSalesforceの主従関係を示すものではありません。参照項目を持つ側を子、もたれる側を親として表現していますので、Salesforceの参照関係の場合にも適用します。

2 の方が親オブジェクトのSalesforce IDを取得する手間がないので簡単です。 以下では、2の外部IDを使う方法についてシンプルな例をあげて説明します。

例: 「取引先」に紐付くカスタムオブジェクト「売上」を移行する

取引先(親) – 売上(子)

のオブジェクト構造を想定します。

ここで「売上」は外部データであり、データローダによって「取引先」とリレーションを張りながらインポートしたいものとします。

子に親への参照項目を追加する

「売上」オブジェクトに「取引先」参照項目(ここでは主従関係)を追加します。

また、後でレコードの判別がやりやすいようにテキスト項目「ノート」も追加しておきました(これは必須の作業ではありません)。

親に外部IDを保持する項目を追加する

取引先」オブジェクトに「取引先ID」項目を追加します。「取引先ID」はテキスト項目とし、オプション[外部ID]にチェックを入れます。

親の外部ID項目に値を設定する

「取引先」の「取引先ID」に値を設定します。ここでは、取引先1〜5に対して「取引先ID」に1〜5を設定します。

外部IDを子の参照関係項目の値として設定したCSVを作成する

「売上」オブジェクトのインポート用CSVを次の様に用意します。

“Account__c”,”note__c”
“1”,”ノート1″
“2”,”ノート2″
“3”,”ノート3″
“4”,”ノート4″
“5”,”ノート5″

参照項目(Account__c)には外部IDを指定します。

データローダ でUpsertを実行する

データローダを起動して「Upsert」を押下します。

「売上」オブジェクトを選択し、用意したCSVファイルのパスを指定します。

次の画面(Step 2a)では何もせず[Next >]をクリックします。

次の画面(Step 2b)で、参照項目(Account__r)に対して、「取引先」の「取引先ID」のAPI参照名である[acc_id__c]を指定します。

次の画面(Step 3)で、[Create or Edit a Map] を押下します。

Mapping Dialog で「Account__c」に対して「Account__r:acc_id__c」をマッピングし、[OK]を押下します。

意図通りのマッピングになっていることを確認して[Next >]を押下します。

次の画面(Step. 4)で[Finish]を押下してインポートを実行します。

確認

5つの「売上」オブジェクトが作成され、各「売上」オブジェクトは親として外部IDにマッチする取引先オブジェクトへの参照を持つことを確認します。

取引先N(N=1,2,3,4,5)に対してノートNを持つ「売上」オブジェクトが作成されリレーションが張られていることが確認できました。

まとめ

Salesforceデータローダ での外部IDを利用した参照関係更新方法についてシンプルな例を用いて説明しました。言葉で表現すると複雑に思えるのですが、実際に手を動かして行ってみてもらうと案外簡単にできると思われたのではないでしょうか。

非営利組織向けのSalesforceパッケージNPSP( Nonprofit Success Pack )では、「取引先責任者」にあたる「個人」オブジェクトに対して、「商談」にあたる「支援」などを寄付の表現として紐付けることがあるかと思います。「支援」の情報を決済代行サービスなどの外部サービスからCSVなどで取得しSalesforceにインポートする際に、外部IDを使ったリレーションの更新方法を知っているとなにかと便利です。

参照

Salesforce 外部IDを利用して、参照項目も一気に更新 | フォレストキャンパス | 株式会社システムフォレスト

 進地 崇裕 Linkedin

関連記事

もっと見る