tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Bulk APIを実行するJavaサンプルアプリを試してみました

Bulk APIを実行するJavaサンプルアプリ開発について確認してみました。実装方法についてはBulk APIの開発者ガイドで解説されています。

Mavenのインストール

mvnコマンドを実行する必要があるのでHomeBrewをつかってインストールします。

$ brew search maven
$ brew install homebrew/versions/maven32

f:id:tyoshikawa1106:20151111231633p:plain


次のコマンドでバージョン確認できます。

$ mvn -v


インストール方法はこちらを参考にさせてもらいました。

maven3 (3.1.x) を Homebrew でインストールする手順 (Mac OS X) | WEB ARCH LABO

Partner WSDLのダウンロード

Salesforceにログインして設定→開発→APIを選択。パートナー WSDL の生成リンクからダウンロードします。
f:id:tyoshikawa1106:20151111233304p:plain

ダウンロードしたファイルはpartner.wsdlという名前にします。このファイルはあとで利用します。

Force.com Web Service Connectorの準備

GitHubから最新ファイルをダウンロードできます。

ダウンロード手順は以下のような感じです。

Building WSC

次のコマンドを実行します。

$ git clone https://github.com/forcedotcom/wsc.git

f:id:tyoshikawa1106:20151111232251p:plain


wscフォルダがダウンロードできます。(pom.xmlのあるディレクトリで実行)
f:id:tyoshikawa1106:20151111232441p:plain


続いて次のコマンドを実行します。(gpgの設定を行う場合)

$ mvn clean package

f:id:tyoshikawa1106:20151111232647p:plain


gpgの設定が不要な場合は次のコマンドでスキップできます。

$ mvn clean package -Dgpg.skip

※gpgの設定についてはまだ勉強中。


これでTargetフォルダが作成されます。
f:id:tyoshikawa1106:20151111234920p:plain


wscフォルダにpartner.wsdlを入れておきます。
f:id:tyoshikawa1106:20151111235039p:plain

Generating Stubs From WSDLs

続いて次のコマンドでJARファイルを生成します。

$ java -classpath target/force-wsc-35.2.4-uber.jar com.sforce.ws.tools.wsdlc <inputwsdlfile> <outputjarfile>

実行例です。

$ java -classpath target/force-wsc-35.2.4-uber.jar com.sforce.ws.tools.wsdlc partner.wsdl partner.jar


自分の環境では警告でましたがひとまず実行できました。
f:id:tyoshikawa1106:20151111235345p:plain


これでpartner.jarが生成されます。
f:id:tyoshikawa1106:20151111235417p:plain


必要なのはこの『partner.jar』とtargetフォルダにある『force-wsc-35.2.4.jar』の2つです。

Eclipseでインポート

プロジェクトを右クリックして一番下のpropertiesを選択。
f:id:tyoshikawa1106:20151112000035p:plain

こんな感じ。
f:id:tyoshikawa1106:20151112000128p:plain


先程の2つのJRAファイルをインポートします。
f:id:tyoshikawa1106:20151112000243p:plain:w300

f:id:tyoshikawa1106:20151112000347p:plain:w300


簡単なサンプルコードを動かしてみます。


これを実行すると取引先の登録を実行できます。
f:id:tyoshikawa1106:20151112002511p:plain

Bulk APIを実行するサンプルを試す

Bulk API開発者ガイドでJavaのサンプルコードが紹介されています。
f:id:tyoshikawa1106:20151112013103p:plain

http://resources.docs.salesforce.com/198/11/ja-jp/sfdc/pdf/api_asynch.pdf


サンプルコードを元にJavaからBulk APIを実行することができました。
f:id:tyoshikawa1106:20151112013343p:plain

詳細から取り込み件数など確認できます。
f:id:tyoshikawa1106:20151112013356p:plain


JOB IDなどの情報も確認できます。
f:id:tyoshikawa1106:20151112014108p:plain


サンプルを動かそうとした時、次のエラーが発生しました。

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/jackson/ObjectCodec


まだきちんと理解できていないですが、次のJARファイルをインポートして解決しました。


サンプルコードです。