テックブログ

SFDC 上のオブジェクトを Java からリモート操作

こんにちは、いがぴょんことアピリオの伊賀敏樹です。

SFDC Force.com を Java から操作するために幾つかの方法が Salesforce から提供されています。Java などのプログラミング言語から Force.com を操作するには、Force.com とは異なるマシンからのリモート操作を行うことになり、そして SOAP や REST プロトコルを利用することになります。

SOAP プロトコルを選択

SOAP と REST には一長一短ありますが、SOAP だと項目レベルおよび静的型付けするメリットが最大限得られるので、業務アプリケーションを Java で開発する場合には SOAP を選択することが主流であり、ここでも SOAP を利用する例を紹介します。SOAP をクライアント側 Java で利用する場合には WSDL を入手した上でインタフェースを取り持つクラス群を生成するのが一般的であり、たいていの場合、その生成後ファイルは jar ファイル形式にまとめて取り回しやすくします。

sfdc-api

Force.com では、SOAP プロトコル用に用途別 WSDL を数通り提供しています。このうち、特定の「組織」向けの一般的な業務アプリケーションを Java などで作成するためには「エンタープライズ WSDL」という WSDL を利用することになります。Salesforce は、この「エンタープライズ WSDL 」を入手したうえで、SOAP クライアントサイドの jar ファイルを作成することを勧めています。そして、この一連の手順が、初見だと意外にわかりづらかったですので、これをメモしておきます。

エンタープライズWSDLを入手して SOAP クライアントを生成する

SFDC にログインしたうえで [設定 | 開発 | API] へと進み、「Enterprise WSDL の生成」をクリックします。生成されたファイルは、ここでは enterprise.xml というファイル名で保存することとします。この enterprise.xml は「組織」ごとに内容が異なるものとなり、例えばカスタムオブジェクトの情報などが含まれています。

get-wsdl

次にエンタープライズ WSDL から jar ファイルを作成するのですが、ここで Force.com のための WSDL 用のツールである WSC の jar ファイルの入手が欠かせません。ちなみに maven リポジトリから WSC を取得する場合であれば、Ant 記述では以下のようになります。

それでは目的の enterprise.xml から jar ファイルの生成を行います。enterprise.xml を入力に WSC で処理を行うのですが、Ant で記述すると以下のようになります。

これを実行すると、Enterprise WSDL に対応した SOAP クライアントである  jar ファイルが出来上がります。参考までに、生成時のコンソール出力を以下に示します。

SOAP を経由して Force.com にアクセスする

では出来上がった jar ファイルを経由して Force.com にアクセスしてみましょう。これまでの説明で入手した2つの jar ファイルは、Force.com にアクセスする場合に利用するので、両方を Java のビルドパスに追加する必要があります。そして、以下のように Java でコーディングを行います。ここの例では、取引先(Account)を全件検索取得して標準出力に表示します。

なお、この例では標準オブジェクトである Account を利用していますが、この対象をカスタムオブジェクトに変更しても動作させることができます。これがエンタープライズWSDLを利用するメリットです。カスタムオブジェクトの場合は「__c」サフィックスを付与する必要がありますのでお忘れなく。

Tooling API の SOAP クライアントを生成する

エンタープライズ WSDL と対照的な機能として Tooling API があります。Force.com Tooling API を使うと Force.com のカスタム開発ツールや Force.com アプリケーションを開発することができるようになるものでして、自前の IDE ですら開発可能にするものです。こちらについても WSDL ファイルが提供されていますので、こちらも SOAP クライアントの jar ファイルを生成してみます。

まず Tooling API の WSDL ファイルを入手します。このファイルも SFDC の [設定 | 開発 | API] から Tooling WSDL の生成 を選択することにより入手できます。この記事では tooling.wsdl というファイル名で保存することにします。

Tooling API jar ファイルのビルド

入力ファイルの準備が整ったのでビルドを行います。Ant タスクを使って、WSDL ファイルから jar ファイルを生成します。この手順により、tooling-api-370.jar ファイルが lib フォルダ内に生成されます。

これまでの手順によって、Java から利用可能な Tooling API の SOAP クライアントである jar ファイルを入手することができました。この記事では、Tooling API はここまでとさせていただき、今後のブログにて、ちょっとした Force.com ツールの作成体験を紹介していく予定です。お楽しみに。

参考: Ant build.xml ファイルの全行

この記事で紹介した手順の Ant build.xml ファイルの全行を以下に掲載します。

 

About Toshiki Iga

Toshiki Iga

"いがぴょん" こと伊賀敏樹。アピリオのシニア・コンサルタントとして、デリバリーチームで活動しています。

Appirio