salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)
salesforce提供了多种API和外部交互,常用的有REST API方式以及SOAP API方式。其中,REST方式好处是方便,如果业务逻辑不复杂情况下,rest方式是首选,但是如果操作特别复杂,比如在api中需要调用审批流,需要进行复杂的业务逻辑,则可以考虑使用SOAP API。
此篇内容为使用java通过SOAP方式实现用户登录以及简单的增删改查操作,因为salesforce对于TLS升级到1.1,方便起见,目前使用的JDK版本为1.8,使用SOAP方式操作的步骤如下(假定你的jdk安装完成以及环境变量配置完成):
1.下载Force.com Web Service Connector
下载链接为http://mvnrepository.com/artifact/com.force.api/force-wsc 我下载的版本为38.0.4
2.下载开发的WSDL文件
Setup->Build->API,这里有很多可以选择的WSDL,企业级WSDL,合作伙伴,元信息等。此处选择企业级WSDL,选择以后详情页右键另存为MyProject.wsdl,名字随便起
3.下载Rhino JavaScript framework,下载完rar文件以后选择其中的js.jar
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino/Download_Rhino
4.下载StringTemplate engine framework ,我选择的是目前最新的4.0.8.jar
http://www.stringtemplate.org/download.html
5.下载ANTRL runtime,我下载的是最新的版本的complete模式,其他模式有可能缺少相关的类
http://www.antlr.org/download.html
6.生成myproject.jar,将上述jar包以及myproject.wsdl放置在C:\Users\test\Desktop\myproject目录下,打开控制台
1) cd C:\Users\test\Desktop\myproject
2)java -classpath force-wsc-38.0.4.jar;ST4-4.0.8.jar;antlr-4.5.3-complete.jar;js.jar com.sforce.ws.tools.wsdlc myproject.wsdl myproject.jar
7.使用force-wsc-38.04.jar以及生成的myproject.jar实现java通过soap api方式访问sfdc,使用soap api访问有很多限制,比如一次insert或者upsert不能超过200等,这里举例登录以及批量添加功能。
SOAP API : https://resources.docs.salesforce.com/204/latest/en-us/sfdc/pdf/apex_api.pdf
1 package controller; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import com.sforce.soap.enterprise.Connector; 7 import com.sforce.soap.enterprise.EnterpriseConnection; 8 import com.sforce.soap.enterprise.sobject.Company_Info__c; 9 import com.sforce.ws.ConnectionException; 10 import com.sforce.ws.ConnectorConfig; 11 12 public class Test { 13 static final String USERNAME = "zhangyueqi_dlmu@163.com"; 14 static final String PASSWORD = "zyq123EfaM6E59ROTm6mgvEjXMD4IUS"; 15 static EnterpriseConnection connection; 16 static List<Company_Info__c> companyInfoList; 17 public static void main(String[] args) { 18 19 ConnectorConfig config = new ConnectorConfig(); 20 config.setUsername(USERNAME); 21 config.setPassword(PASSWORD); 22 23 try { 24 25 connection = Connector.newConnection(config); 26 System.out.println("Auth EndPoint: "+config.getAuthEndpoint()); 27 System.out.println("Service EndPoint: "+config.getServiceEndpoint()); 28 System.out.println("Username: "+config.getUsername()); 29 System.out.println("SessionId: "+config.getSessionId()); 30 companyInfoList = new ArrayList<Company_Info__c>(); 31 createData(); 32 List<Company_Info__c> tempCompanyInfoList = new ArrayList<Company_Info__c>(); 33 for(int i=0;i<companyInfoList.size();i++) { 34 tempCompanyInfoList.add(companyInfoList.get(i)); 35 //create超过200将会报错。sfdc的limit 36 if(i % 199 == 198 || i == companyInfoList.size()-1) { 37 connection.create(tempCompanyInfoList.toArray(new Company_Info__c[tempCompanyInfoList.size()])); 38 tempCompanyInfoList.clear(); 39 } 40 } 41 42 } catch (ConnectionException e1) { 43 e1.printStackTrace(); 44 } 45 } 46 47 private static void createData() { 48 for(int i=0;i<220;i++) { 49 Company_Info__c companyInfo = new Company_Info__c(); 50 companyInfo.setCompany_Name__c("company name" + i); 51 companyInfo.setCompany_Code_Unique__c("company code unique" + i); 52 companyInfo.setCompany_Phone__c("13800000000"); 53 companyInfo.setCompany_Place__c("company place " + i); 54 companyInfo.setCompany_Type__c("company type" + i); 55 companyInfoList.add(companyInfo); 56 } 57 } 58 }
总结:此篇主要内容为如何生成SOAP以及SOAP API的简单使用,详情可以参看SOAP API获取更多使用功能。篇中如果有错误地方,欢迎指正,有问题欢迎留言。
作者:zero
博客地址:http://www.cnblogs.com/zero-zyq/
本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
如果文章的内容对你有帮助,欢迎点赞~
为方便手机端查看博客,现正在将博客迁移至微信公众号:Salesforce零基础学习,欢迎各位关注。