Salesforce Dataloader 命令行连接数据库以及导入导出数据常见注意事项

Salesforce Dataloader 导入数据几条注意事项
2011-06-24 23:44

一. 导入数据几条注意事项

1. Dataload的时候经常会遇到Trigger提示Too Many SOQL Error. 主要因为Trigger将SOQL放到了循环里了。要想改正这个错误需要修改Trigger,但是在不能修改Trigger的情况下可以将Dataloader的每次提交行数修改为10行甚至1行,这样将不会触发循环超出限制。

2. Dataload的时候经常会遇到Trigger报错200条记录都报错,但是可能只是其中1条错误,由于Trigger是200条一个Batch,所以一个错误会导致200条错误。

3. 在进行有主键外键的系统迁移到SFDC系统的时候可以使用External Id 进行Upsert 操作。这样Lookup field可以不是必须使用ID进行更新,可以使用External ID进行更新了。同样适用于Sandbox到Production的数据转移。

4. Company Profile 时区需要设置成GMT,否则Createdate和LastmodifiedDate会自己加减。

5. Dataloader时区最好需要设置成GMT。不然当Dataloader时区和Salesforce时区相差12小时的时候,系统会自动减去一天。

6. Opportunity Object and Contact Role是Master, Detail 关系,并且Salesforce认为两个Object同属于Opportunity,所以Insert Contact Role的时候,Opportunity的LastModifiedDate会同时更新成当前日期。目前没办法解决。

7. Opportunity Stage name 会自动记录到StageHistory里,而且当History改变的时候,系统认为这个Opportunity也改变了,所有LastmodifiedDate也会被改变,所有在用CSV文件导入到Salesforce的时候,要注意StageName列的位置要排在LastModifiedDate前面。

. Data Loader 配置命令行运行以及连接SQLServer 数据库 

1.encrypt.bat  -g aaaa > key.txt. 生成key file.

2. encrypt.bat -e "\key.txt". 生产加密密码.

3. 生成或者Copy一个Map文件. 

4. 配置process-conf.xml

5. 配置database-conf.xml,如果数据要和DB交互的话,Dataloader可以通过JDBC建立连接

6. 运行命令 process.bat"C:\Program Files\salesforce.com\Data Loader\bin" insertAccount

process-conf.xml:例子



             class="com.salesforce.dataloader.process.ProcessRunner"
          singleton="false">
        insertAccount job gets accountinfo from salesforce and updates or inserts info intodatabase."
       
       
           
               
               
               
               
               
                              
               
               
               
               
               
               
               
               
           

       

   
   

database-conf.xml: SQLServer2005.




   
   
   
   
   

     class="com.salesforce.dataloader.dao.database.DatabaseConfig"
      singleton="true">
   
   

     class="com.salesforce.dataloader.dao.database.SqlConfig"singleton="true">
   
       
            INSERT INTO dbo.Accounts(ID,  NAME  ,CREATEDDATE)
                            VALUES (@ID@, @NAME@,@CREATEDDATE@)
       

   

   
       
           
           
           
       

   






你可能感兴趣的:(Salesforce)