via pixabay.com
はじめに
データローダーのVer60.0で外部キー参照機能が追加されました。外部キー項目を用いることでロード用CSVデータの参照関係項目にIDを入力していなくても自動でセットしてくれる機能です。
データローダーを利用する際、急に見慣れない画面が出てきて戸惑う人がいるかもしれないと思い、調査してみました。今回は、外部キー参照機能の概要とどういった場面でどのように使用できるのかについて紹介します。
データローダーを利用する際、急に見慣れない画面が出てきて戸惑う人がいるかもしれないと思い、調査してみました。今回は、外部キー参照機能の概要とどういった場面でどのように使用できるのかについて紹介します。
外部キー参照機能とは
データローダーのVer60.0以降でInsert,Update,Upsertを実行する際に、対象のオブジェクトと使用するロード用のCSVを設定すると下図のような画面が表示されます。この画面は外部キー項目を用いた参照関係項目へのID自動セットの設定をすることができます。
「Relationship」はロード対象のオブジェクトが持つ参照関係の項目一覧を表示しています。
「Related Object」は参照関係項目にセットされるデータが何のオブジェクトのIDかを表示している列です。プルダウン形式になっていますが、基本的に対象のオブジェクトは初期値のままで問題ないと思います。
「Lookup Field of Related Object」は外部キー項目としてどの項目を使用するか設定する列です。
例えば画像では参照関係の項目先のオブジェクトである「Account」が持つ外部キー項目の「CompanyNo_c」を設定しています。この場合はロード用のCSVに「CompanyNo_c」列を作成することで参照関係項目である「Account」に取引先のIDが自動でセットされます。また、初期表示では「<Not selected>」が選択されています。「<Not selected>」が選択されている場合は対象の参照関係の項目に自動セットされません。
「Related Object」は参照関係項目にセットされるデータが何のオブジェクトのIDかを表示している列です。プルダウン形式になっていますが、基本的に対象のオブジェクトは初期値のままで問題ないと思います。
「Lookup Field of Related Object」は外部キー項目としてどの項目を使用するか設定する列です。
例えば画像では参照関係の項目先のオブジェクトである「Account」が持つ外部キー項目の「CompanyNo_c」を設定しています。この場合はロード用のCSVに「CompanyNo_c」列を作成することで参照関係項目である「Account」に取引先のIDが自動でセットされます。また、初期表示では「<Not selected>」が選択されています。「<Not selected>」が選択されている場合は対象の参照関係の項目に自動セットされません。
従来の操作手順
データローダーを利用する従来の手順ではデータ登録対象のオブジェクトに参照関係の項目がある場合、SalesforceIDを設定するために参照先オブジェクトのレコードを取得しなければいけません。取得したレコードの中から必要なSalesforceIDを抜き出して参照関係の項目に設定する手順でCSVを作成します。
下記の図はデータを登録したいオブジェクトが商談、参照先のオブジェクトが取引先のイメージです。
①取引先の登録
取引先CSVをインポートしてInsertを行いSalesforce組織上に取引先レコードを作成
②取引先の取得
組織から取引先をエクスポートして発番されたレコードIDを取得
③商談CSVの編集
商談CSVの参照関係の項目である「取引先」の列に取得したレコードIDを設定
④商談の登録
完成した商談CSVをインポートして商談レコードのInsertを実施
下記の図はデータを登録したいオブジェクトが商談、参照先のオブジェクトが取引先のイメージです。
①取引先の登録
取引先CSVをインポートしてInsertを行いSalesforce組織上に取引先レコードを作成
②取引先の取得
組織から取引先をエクスポートして発番されたレコードIDを取得
③商談CSVの編集
商談CSVの参照関係の項目である「取引先」の列に取得したレコードIDを設定
④商談の登録
完成した商談CSVをインポートして商談レコードのInsertを実施
新規の操作手順
外部キー参照機能を利用するし新しい手順ではデータ登録対象のオブジェクトに参照関係の項目がある場合、ロード用のCSVに参照先オブジェクトが持つ外部キー項目の列を追加します。割り当てたい参照先レコードの外部キー項目をセットしておくことで、Insert時に自動で参照関係の項目にIDがセットされます。
下記の図は先ほどと同様にデータを登録したいオブジェクトが商談、参照先のオブジェクトが取引先のイメージです。
①取引先の登録
取引先CSVをインポートしてInsertを行いSalesforce組織上に取引先レコードを作成
※取引先CSVでは外部キー項目である「企業番号」に一意の値を設定
②商談の登録
商談CSVをインポートして商談レコードのInsertを実施
下記の図は先ほどと同様にデータを登録したいオブジェクトが商談、参照先のオブジェクトが取引先のイメージです。
①取引先の登録
取引先CSVをインポートしてInsertを行いSalesforce組織上に取引先レコードを作成
※取引先CSVでは外部キー項目である「企業番号」に一意の値を設定
②商談の登録
商談CSVをインポートして商談レコードのInsertを実施
実際の使用方法
実際に今回の機能を利用して、取引先を参照する商談レコードを登録していきます。
①商談に紐づける取引先に外部キー項目を作成します。
①商談に紐づける取引先に外部キー項目を作成します。
②Insert用の商談CSVに外部キー項目の列を追加します。
③DataLoaderからInsertを実行します。
④対象オブジェクト・CSVファイルの選択後下記の画面が表示されるので、Accountの<Not Selected>を外部キー項目(CompanyNo__c)に変更します。
⑤CSVに追加したAccount.CompanyNoに項目が紐づいていないため追加します。
⑥Insertを実行すると取引先IDの指定をせずに取引先が紐づいています。
使ってみた感想
従来の移行手順では参照関係先のレコードも同じタイミングで移行する場合、参照関係先のレコードをInsertした後に、Salesforce上でIDが発番されてからそれを取得して参照関係の項目にセットする必要がありました。Insertするデータが少ない場合はそれほど手間ではありませんが、移行データが多い場合にどのレコードがどのレコードと紐づくのか割り当てが必要で時間がかかります。
レコード間の参照関係をセットする際にリレーションを設定するためにIDを付けなおす作業を移行手順に組み込む必要がありましたが、今後は事前に準備しておいたCSVを順番通りにインポートしていくだけでよくなりました。移行用のCSVデータで外部キーをセットしておくことで、その外部キーを持つレコードと自動で紐づけがされ、参照関係項目にIDがセットされた状態でレコードが作成されるため便利な機能だと感じました。
レコード間の参照関係をセットする際にリレーションを設定するためにIDを付けなおす作業を移行手順に組み込む必要がありましたが、今後は事前に準備しておいたCSVを順番通りにインポートしていくだけでよくなりました。移行用のCSVデータで外部キーをセットしておくことで、その外部キーを持つレコードと自動で紐づけがされ、参照関係項目にIDがセットされた状態でレコードが作成されるため便利な機能だと感じました。
おわりに
今回は外部キーを用いたデータローダーでのデータ移行を紹介しましたが、いかがでしたしょうか。この機能を使用しない場合は、初期表示の「<Not selected>」のまま次の画面へ進むことで従来通りの処理になります。作業が簡単になるだけでなく、レコードの参照関係項目の紐づけ割り当てのミスなども減らせるのではないかと思います。また、最初に作成した移行用のCSVデータに更新をかける必要が無いため、移行作業前にデータが固まります。
初期移行などでも便利な機能なのでぜひ使ってみてください。
初期移行などでも便利な機能なのでぜひ使ってみてください。
30 件