1

I need to upsert data into Account object using Data Loader CLI. And I am getting below error.

2018-11-15 10:53:38,196 ERROR [accountUpdateProcess] client.PartnerClient proces sResult (PartnerClient.java:451) - Error code is:MISSING_ARGUMENT 2018-11-15 10:53:38,196 ERROR [accountUpdateProcess] client.PartnerClient proces sResult (PartnerClient.java:452) - Error message:Codice_cliente__c not specified

Below are my config and mapping files

Config file

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean id="accountUpdateProcess"
          class="com.salesforce.dataloader.process.ProcessRunner"
          singleton="false">
        <description>AccountMaster job gets the Customer record updates from CSV and uploads them to salesforce using 'upsert'.</description>
        <property name="name" value="accountUpdateProcess"/>
        <property name="configOverrideMap">
            <map>
                <entry key="sfdc.debugMessages" value="true"/>
                <entry key="sfdc.debugMessagesFile" value="<filepath>\AccountUpdate\accountUpdateProcess.log"/>
                <entry key="sfdc.endpoint" value="https://test.salesforce.com"/>
                <entry key="sfdc.username" value="<username>"/>
                <!-- password below has been encrypted using key file, therefore it will not work without the key setting: process.encryptionKeyFile
                the password is not a valid encrypted value, please generate the real value using encrypt.bat utility -->
                <entry key="sfdc.password" value="<password>"/>
                <entry key="process.encryptionKeyFile" value="C:\Users\Advait.Deshpande\.dataloader\dataLoader.key"/>
                <entry key="sfdc.timeoutSecs" value="600"/>
                <entry key="sfdc.loadBatchSize" value="300"/>
                <entry key="sfdc.externalIdField" value="Codice_cliente__c"/>
                <entry key="sfdc.entity" value="Account"/>
                <entry key="process.operation" value="upsert"/>
                <entry key="process.mappingFile" value="<filepath>\AccountUpdate\updateAccountProcessMapping.sdl"/>
                <entry key="dataAccess.name" value="<filepath>\AccountUpdate\clienti.csv"/>
                <entry key="dataAccess.type" value="csvRead"/>
                 <entry key="process.initialLastRunDate" value="2006-12-01T00:00:00.000-0800"/>
            </map>
        </property>
    </bean>
</beans>

Mapping file

#Mapping values
# WED NOV 14 03:15 PM IST 2018
Codice_cliente__c= codice;
Status__c = status;
Name = ragione soc.;
Denominazione__c = ragione soc.2;
BillingCity = citta';
BillingStreet = indirizzo;
BillingPostalCode = CAP;
BillingState = prov.;
part_IVA__c = part.IVA;
Agente__c = agente;
Fatturato_anno_in_corso__c = fatt.AA;
Fatturato_anno_1_AA_1__c = fatt.AA-1;
Fatturato_anno_2_AA_2__c = fatt.AA-2;
Fatturato_anno_3_AA_3__c = fatt.AA-3;
Email_per_Fatture__c = mail ft.pdf;
Email_commerciale__c = e-mail;
Username__c = #utente;
Password__c = #password;
Condizioni_di_pagamento__c = des.cond.pag.;
Codice_Consorzio__c = Descr.Consor.;

Data file

enter image description here

My EXTERNAL ID in salesforce is Codice_cliente__c

1 Answer 1

1

Your file is incorrect. The mapping should have the source column on the left, and the destination field on the right. There are special rules you must observe.

  1. Create a new mapping file and give it an extension of .sdl.
  2. Observe the following syntax:

    • On each line, pair a data source with its destination.
    • In an import file, put the data source on the left, an equals sign (=) as a separator, and the destination on the right. In an export file, put the destination on the left, an equals sign (=) as a separator, and the data source on the right.
    • Data sources can be either column names or constants. Surround constants with double quotation marks, as in “sampleconstant”. Values without quotation marks are treated as column names.
    • Destinations must be column names.
    • You may map constants by surrounding them with double quotation marks, as in:

      "Canada"=BillingCountry
      

...

And a special note:

If your field name contains a space, you must escape the space by prepending it with a backslash (). For example:

Account\ Name=Name

Be aware of stray spaces, semi-colons, etc.

Since you're importing data, the columns need to be flipped around:

codice=Codice_cliente__c
status=Status__c
ragione\ soc.=Name

...

4
  • Hi @sfdcfox. Thank you for the quick response. But when I try flipping the column names it gives out a new error. "2018-11-15 11:39:44,205 ERROR [accountUpdateProcess] action.AbstractAction handl eException (AbstractAction.java:222) - Exception occured during loading com.salesforce.dataloader.exception.MappingInitializationException: Field mappin g is invalid: codice => Codice_cliente__c;"
    – Advait
    Commented Nov 15, 2018 at 6:12
  • @Advait You still have those semi-colons in there. You need to take those out. It should be exactly like sourcefield=Destination_Field__c. No extra punctuation at all.
    – sfdcfox
    Commented Nov 15, 2018 at 6:16
  • Thank you. I had read in some other post to put a semicolon after each mapping. I really appreciate your quick help
    – Advait
    Commented Nov 15, 2018 at 6:19
  • @Advait Sure thing. Always make sure you check the documentation instead of blog posts; they can become outdated, but the documentation is refreshed regularly.
    – sfdcfox
    Commented Nov 15, 2018 at 6:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .