■データ連携検討ポイント
- 連携対象(HTTP/FTP/WebDAV/HTTPSやSFTP/FTPS、SOAP/RESTful/Bulk APIなど)
- データソース(CSV/XML/JSON/Oracle、SQLServer、PostgreSQL)
- Salesforce → 外部システム連携
- 外部システム → Salesforce連携
- リアルタイム連携/バッチ連携
- データ量と実行頻度から制限に抵触する可能性
SOAP ロールバックできる
REST ロールバックできない
DataLoder Bath Bulk API
■SOAP 実装手順
①Sfdc⇒WSDL.wsdl
②Force WSCダウンロード
https://mvnrepository.com/artifact/com.force.api/force-wsc
https://github.com/forcedotcom/wsc
③ST-4.0.8.jarダウンロード
https://mvnrepository.com/artifact/org.antlr/ST4
※①②③をJavaPathに移動
④合併(enterprise.jar 生成)
java -classpath "${JAVA_HOME}lib/tools.jar:target/force-wsc-45.0.0-uber.jar" com.sforce.ws.tools.wsdlc <inputwsdlfile> <outputjarfile>
⇒
cd C:\Program Files\Java\jdk1.7.0_80\lib
java -classpath force-wsc-44.0.0.jar;ST-4.0.8.jar;tools.jar com.sforce.ws.tools.wsdlc enterprise.wsdl enterprise.jar
※ClassPath = "C:\Program Files\Java\jdk1.7.0_80\lib\tools.jar"
java -classpath force-wsc-44.0.0.jar;ST-4.0.8.jar;tools.jar com.sforce.ws.tools.wsdlc enterprise.xml enterprise.jar
※Java8 以上はtools.jar 存在しないため、エラー発生する。
サンプルコード
import com.sforce.soap.enterprise.Connector;
import com.sforce.soap.enterprise.EnterpriseConnection;
import com.sforce.soap.enterprise.SaveResult;
import com.sforce.soap.enterprise.sobject.Account;
import com.sforce.soap.enterprise.sobject.SObject;
import com.sforce.ws.ConnectionException;
import com.sforce.ws.ConnectorConfig;
public class soap {
public static void main(String[] args) throws ConnectionException {
ConnectorConfig config = new ConnectorConfig();
config.setUsername("Username"); //実際にはsandboxのログインアカウントを指定
config.setPassword("Password"); //実際にはsandboxのログインパスワードを指定
EnterpriseConnection connection = Connector.newConnection(config);
Account account = new Account();
account.setName("20181220テスト取引先");
SaveResult[] ret = connection.create(new SObject[]{account});
//retから情報取得したり
System.out.println(ret);
}
}