+ Start a Discussion

Custom object external id with Data Loader

Hi Have a wired situation with command-line data loader v.29 from an daily automated data loads from external oracle system

using commanding line data loader I uploaded customer data into account object on account I have an external field oracle__id text field.In that I am storing my oracle unique identifier

I have an child object called address .it is an custom object. It has an look-up relation ship with account .In that child object I have an external field oracle_child__id stores oracle uni id related to customer.

I pulled address data from oracle did a upsert. but my relation field with account is not updating

in my mapping file I have

Account= Account__c\:oracle_id

and process xml file

external field value is oracle_id

It is not working. There is any work around to link master standard object with child custom object in command-line data-loader. I went lot of material no clue. thanks

To populate the account on the address object record, you should be providing the Salesforce ID of the account and not the external ID. External ID cannot be used to populate a record, it is only used to store the external id from outside system, like oracle in your case. Please try populating with the salesforce ID of the account and it should work fine. Some documentation on external IDs: http://help.salesforce.com/apex/HTViewHelpDoc?id=faq_import_general_what_is_an_external.htm

If this answers your question, please mark this as the Best Answer for this post, so that others can benefit from this post.


You will have to insert/ upsert data individually in to 2 tables. 1 insert for account object and other one for address object. 

Good Luck!
Rodrigo CruzRodrigo Cruz
Did you try using this entry on your address mapping file:

Account= Account\:oracle_id

Account is not a custom object, so you just refer to it as "Account".

I hope it helps.
Hi gv007

Did you find a solution about your issue. I have the same problem , in my case I have two custom objects A and B and there is a master detail relationship between the two, and object A has an external ID.

In the process-conf file I included:
<entry key="sfdc.externalIdField" value="A__r.External_ID__c"/>

In the mapping file I have this:

But I am getting an error the " Field name provided A__r.External_ID__c id is not an external id or indexed field on B"
Linda 98Linda 98

Did you solve that?
I am getting same error .please let me know how you fixed it.
Thank you.
Hi Linda 

I did the following :

Master : GRCS_Fund__c     Custom field: GRCS_External_Code__c (External ID)
Child : GRCS_Fund_Performance__c  Custom Filed : GRCS_External_ID__c (External ID)

In the process-conf.xml file I have the following lines:

<entry key="sfdc.entity" value="GRCS_Fund_Performance__c"/>
<entry key="sfdc.externalIdField" value="GRCS_External_ID__c"/>

In the Sdll file I have a line like this:

External\ Code\ ID=GRCS_Fund__r\:GRCS_External_Code__c

External\ Code\ ID is the column name from the csv file that I want to import the " \" is the space representation, since the coumn name is External
Code ID.

Hopefully this will provide some help for your use case, just as a note since it is an UPSERT operation I had to create the second External ID for the child as Unique case insesitive this way it will create a new record.

Good luck !!