データを2つのオブジェクトにロードする必要があります。データローダーを使用して、1つのオブジェクトにデータをロードできます。2番目のオブジェクトは最初のオブジェクトとマスター/詳細の関係があるため、CSVファイルの最初のオブジェクトのレコードの一意のレコードIDが必要です。これらのレコードIDをCSVファイルに追加するにはどうすればよいですか?
2 に答える
最初のアップロード後に「マスター」レコードをダウンロードして、(名前-> ID)と同様のマッピングを実行できます。Excelでは、これはVLOOKUPを使用して実現できます。「詳細」オブジェクトの新しいリストを生成したら、問題なくアップロードできます。マッピング「ID->アップロードされたレコード」は、ApexDataLoaderによって作成された成功ログファイルでも利用できます。
しかし、より良い方法は、「Salesforce IDをねじ込む、悪臭を放つIDは必要ない」と大声で言うことです:)「マスター」に固有のフィールドがあるかどうかを考えてください。Salesforceにインポートする既存のシステムの「ID」にすることもできます。Salesforceでこのフィールドを作成し(まだ作成していない場合)、「外部ID」としてマークします。その後、ソースとターゲット間のリンクを作成する方法として、通常のSalesforceIDの代わりにこの外部IDを使用できるようになります。擬似コードの場合:
通常のSalesforceIDでは、
INSERT INTO detail_object (Name, SomeValue, master_ID) VALUES ("foo", "bar", [some valid salesforce id])
外部IDを使用すると、簡単に、すべての面倒な作業を行うようにセールスフォースに指示できます。
INSERT INTO detail_object (Name, SomeValue, master_ID) VALUES ("foo", "bar", (SELECT Id from master_object where some_field_marked_as_external_id = "123")
可能であれば、データローダーのユーザーガイドでクイックスタートと外部IDの操作を確認してください(無料の開発者版では多分?)。説明するよりも使いやすいです。
Apexデータローダーを使用している場合は、次の3つのことを行う必要があります。
1:マスターレコードを挿入します。これは彼らにIDを与えます
2:IDを含むマスターレコードを再度エクスポートし、それを詳細データに統合します。VLOOKUPは、そのような場合に最も役立ちます。
または、マスターレコードが1つしかない場合は、さらに簡単に、URLからIDをコピーして、スプレッドシートのすべての詳細レコードに追加するだけです。
3:次に、マスターIDを含む詳細レコードを挿入します