zoukankan      html  css  js  c++  java
  • salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)

    此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environment_tipsheet.pdf

    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,名字随便起

    不同WSDL区别:https://developer.salesforce.com/docs/atlas.en-us.202.0.api.meta/api/sforce_api_quickstart_intro.htm#choose_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 estDesktopmyproject目录下,打开控制台

      1) cd C:Users estDesktopmyproject

      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等,这里举例登录以及批量添加功能。

     限制详情:https://developer.salesforce.com/docs/atlas.en-us.204.0.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_apicalls.htm

    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 }
    Test

    总结:此篇主要内容为如何生成SOAP以及SOAP API的简单使用,详情可以参看SOAP API获取更多使用功能。篇中如果有错误地方,欢迎指正,有问题欢迎留言。

  • 相关阅读:
    Android x86 镜像分析之四
    Android x86 镜像分析之三
    Android x86 镜像分析之二
    Android x86镜像分析
    tizen镜像制作
    完成登录与注册页面的前端
    JavaScript 基础,登录前端验证
    CSS实例:图片导航块
    导航,头部,CSS基础
    web基础,用html元素制作web页面
  • 原文地址:https://www.cnblogs.com/zero-zyq/p/6077773.html
Copyright © 2011-2022 走看看