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

0

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

...

  • 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 Nov 15 '18 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 Nov 15 '18 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 Nov 15 '18 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 Nov 15 '18 at 6:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.