LoginSignup
4
3

More than 5 years have passed since last update.

Salesforce ✕ SpringBoot クイックスタート

Last updated at Posted at 2019-04-08

JavaからSalesforceにSOAP APIを叩くためのツール作成の入門。
最近Salesforceの開発に携わったので、備忘録として。

Spring Initializrから元コード取得

※ とくにDependenciesは選択しない

image.png

Mavenに以下追加

pom.xml
        <dependency>
            <groupId>com.force.api</groupId>
            <artifactId>force-partner-api</artifactId>
            <version>45.1.0</version>
        </dependency>

force-partner-apiのPartnerって何?

※ Partner: Salesforceで汎用に使えるWSDLを使用
※ Enterprise: Salesforceで組織ごと独自で使用するWSDLを使用

Javaファイルに以下追加


package sfdc.test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import com.sforce.soap.partner.PartnerConnection;
import com.sforce.ws.ConnectionException;
import com.sforce.ws.ConnectorConfig;

@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
        login();
    }

    // Salesforceのログイン処理
    private static boolean login() {
        PartnerConnection partnerConnection = null;
        boolean success = false;
        String username = "※ログインID※";
        String password = "※パスワード※";
        String authEndPoint = "https://login.salesforce.com/services/Soap/u/45.0/";
        // Sandboxの場合、testに変更する

        try {
          ConnectorConfig config = new ConnectorConfig();
          config.setUsername(username);
          config.setPassword(password);

          config.setAuthEndpoint(authEndPoint);
          config.setTraceMessage(true);
          config.setPrettyPrintXml(true);

          partnerConnection = new PartnerConnection(config);

          success = true;
        } catch (ConnectionException ce) {
          ce.printStackTrace();
        }
        return success;
      }
}

ここから先、InsertやUpdate処理を行うには・・・

以下の公式サイトのサンプルコード参照

つまづきポイント

* 型の違い

        SObject contact = new SObject();
        contact.setType("Contact");
        contact.setField("FirstName", "Otto");

        // 日付は、String ではなく Dateを入れる
        contact.setField("Date__c", "Jespersen");

        // 日時は、String ではなく Calenderを入れる
        contact.setField("DateTime__c", "Professor");

*  外部キーのセット

        SObject contact = new SObject();
        contact.setType("Contact");

        SObject account = new SObject();
        account.setType("Account");
        // 外部キー
        account.setField("Key__c", value);

        contact.setField("FirstName", "Otto");
        contact.setField("Account.Key__c", account);

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3