function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
KeronKeron 

別組織へのデータのインポートについて

私のDeveloperEdiotionで作成したカスタムオブジェクトデータを

友人のDeveloperEditionの環境へインポートしようと思うのですが、

実際やってみるとSalesforceIDが「invalid」と叱られてしまいます。

そもそも、そのような事は不可能なのでしょうか?

Best Answer chosen by Admin (Salesforce Developers) 
minoawminoaw

>SalesforceIDは、各環境で接頭部分のコードが違うので、
>そのままのcsvファイルを使ってもエラーになってしまうのか

仰る通りinsert時にIdに値を入力しようとしてもエラーになるので
マッピング時に除外する必要があります。

しかし単にそれだけでデータをインポートすると、
主オブジェクトのIdがKeronさんの環境とご友人の環境で変わってしまい、
従オブジェクトを作成するときに主従項目に入力する主Idが不整合となってしまいます。

その問題を回避するのが MFuru さんの言う方法で、
詳細な手順は下記のようになるかと思います。

1. 友人環境の主従関係の主側カスタムオブジェクトに「旧Id」などという名前を付けたテキスト(外部ID)項目を作成する。
2. 主オブジェクトを友人環境へinsertする。
   その際、
   ・exportした「Id」項目の値を「旧Id」項目へマッピングし、「Id」項目へはなにもマッピングしない。
3. 従オブジェクトを友人環境へupsertする。
   その際、
   ・「Step 2b:Choose your related objects」で「旧Id」項目を指定する。
   ・項目のマッピング時に「主従項目」を「主オブジェクト:旧Id」にマッピングする。
4. 不要となった「旧Id」項目を削除する。

All Answers

MFuruMFuru

インポートは可能です。どのような方法でインポートしてますか?

もし使ってなければ、DataLoderを使ってみてはいかがでしょうか?

KeronKeron

M.Furuさま、回答ありがとうございます。

 

当方、DataLoaderを使用しました。

手順としては、

 

1)私の環境で、主従関係のあるカスタムオブジェクト(主)とカスタムオブジェクト(従)を

  DataLoaderにてExportを実施。

2)友人の環境で主従関係のカスタムオブジェクトを作成。但しデータは0件の状態。

3)友人の環境で、まずは、1)で出力したカスタムオブジェクト(主)側のcsvファイルを使用し、

  DataLoaderにてInsertを実施。

4)全件がErrorとなり、Errorメッセージを見ると、salesforceIDが気に入らない旨が表示。

 

確かに、SalesforceIDは、各環境で接頭部分のコードが違うので、そのままのcsvファイルを

使ってもエラーになってしまうのか、csvファイル内のSalesforceIDの値を何か細工してあげないと

Insertできないのかどうかで、頭を悩ませております。

 

もし、回避策をご存知の方がいらっしゃいましたら、ご教授頂きたいと思います。

宜しくお願い致します。

MFuruMFuru

エラーは参照関係の項目で出力されているということで良いですか?

 

その場合は、参照しているオブジェクトに外部ID項目を作って、レコードをインサートし、

 

InsertではなくUpsertを使って、外部IDを紐付けることで移行することができます。

KeronKeron

M.Furuさま

 

早速の回答ありがとうございます。

 

外部ID項目を作る必要があるのは、

 

 1)私の環境の主従関係の主側カスタムオブジェクト

 2)友人の環境の主従関係の主側カスタムオブジェクト

 

の双方に作成してから、DataloaderによりExportをやり直して、

移行する時にInsertではなく、外部ID項目紐付きでのUpsertを

実施すれば良いということでしょうか?

 

以上、宜しくお願い致します。

 

 

minoawminoaw

>SalesforceIDは、各環境で接頭部分のコードが違うので、
>そのままのcsvファイルを使ってもエラーになってしまうのか

仰る通りinsert時にIdに値を入力しようとしてもエラーになるので
マッピング時に除外する必要があります。

しかし単にそれだけでデータをインポートすると、
主オブジェクトのIdがKeronさんの環境とご友人の環境で変わってしまい、
従オブジェクトを作成するときに主従項目に入力する主Idが不整合となってしまいます。

その問題を回避するのが MFuru さんの言う方法で、
詳細な手順は下記のようになるかと思います。

1. 友人環境の主従関係の主側カスタムオブジェクトに「旧Id」などという名前を付けたテキスト(外部ID)項目を作成する。
2. 主オブジェクトを友人環境へinsertする。
   その際、
   ・exportした「Id」項目の値を「旧Id」項目へマッピングし、「Id」項目へはなにもマッピングしない。
3. 従オブジェクトを友人環境へupsertする。
   その際、
   ・「Step 2b:Choose your related objects」で「旧Id」項目を指定する。
   ・項目のマッピング時に「主従項目」を「主オブジェクト:旧Id」にマッピングする。
4. 不要となった「旧Id」項目を削除する。

This was selected as the best answer
KeronKeron

minoawさま

 

とてもわかりやすく回答下さりありがとうございます。

手順通りやってみます。

ありがとうございました。

KeronKeron

minoaw様

 

ご教授頂いたとおりやってみました。

無事移行が完了しました。

ご親切にありがとうございました。