1
/
5

【QUANZ TECHBLOG】MuleSoftとSalesforceの連携方法

みなさん、こんにちは。以前にMulesoftで簡単なAPIを作成する記事を掲載しました。本記事では、MuleSoftでSalesforceと接続して連携するAPIを作成してみたいと思います。


【目次】

目的・ゴール
Salesforce環境の設定
  • 接続アプリケーションの作成
  • セキュリティトークンの発行
AnypointStudio上の実装
  • Salesforceコネクタを使用
実行結果
最後に

目的・ゴール

Muleで簡単なHTTPリクエストを受信したときに、レスポンスに接続先Salesforce環境のAccountを表示するAPIを作成します。

今回は接続先Salesforce環境を用意します。こちらはDeveloper Editionで構いません。今回もローカル環境にてAPIを動かすため、Anypoint Platformを経由しません。


Salesforce環境の設定

❚接続アプリケーションの作成

まずはSalesforce側として接続アプリケーションを作成し、Mule APIと接続できるようにします。
アプリケーションマネージャから接続アプリケーションを作成します。

今回はOAuth認証を使用するため、接続アプリケーションの設定値を以下のようにしてください。

接続アプリケーション作成後、「コンシューマ鍵」、「コンシューマの秘密」が発行されるのでその値を控えておきましょう。後にMule側の設定で使用します。


❚セキュリティトークンの発行

認証のためにセキュリティトークンも使用するため、接続するSalesforceユーザの私の個人設定→私のセキュリティトークンのリセットからセキュリティトークンを発行します。メールにて送信され、発行されたセキュリティトークンも後のMule側の設定で使用するため控えておきます。


AnypointStudio上の実装

❚Salesforceコネクタを使用

次にMuleSoft側の設定を行います。Salesforceとの接続にはSalesforceコネクタを使用します。Mule PaletteからSalesforceをドラッグアンドドロップし、モジュールに加えることによって、必要なライブラリがインストールされます。

Salesforceコネクタには色々用意されており、CreateやUpdateなどを駆使すればSalesforce上のデータ操作を行うことが可能です。今回はSalesforceからAccountを取得したいので、Queryコネクタを使用します。

HTTP Listenerの直後にQueryコンポーネントを挿入します。

QueryコンポーネントのプロパティにはSalesforceの接続設定であるConnector configurationとSOQL文であるSalesforce queryをそれぞれ設定します。

Connector configurationにはSalesforceの接続情報を入力します。

他にも細かい設定がありますが、接続の際に必要な最低限の情報は上記ですので、入力後接続検証のためにTest Connectionボタンを押して接続確認します。「Test connection successful」が出ればSalesforceへの接続が成功です。

最後に取得したAccountの一覧をJSON形式に変換するために、Queryの直後にTransform Messageを入れます。以下のように記載することでQueryで返却されたpayload値をJSON形式に変換することができます。

簡単ではありますが、以上でSalesforceのAccountを取得するAPIとなります。実際に動かしてみて取得されているかどうかを確認してみましょう。


実行結果

上記のAPIを実行すると、取得したAccountの一覧が実行結果として表示され、Salesforceから連携されたこと、そしてAccountの内容が取得できたことが確認できました。


最後に

このように、Salesforceコネクタを使用することで、Salesforceと連携する事が可能になります。今回はQueryを駆使してのデータ取得でしたが、基本的なCRUD操作はコネクタで対応していますのでMuleを実装する上で幅が広がるのではないかと思います。


■お知らせ

テックブログではSalesforceに関する有益な情報を発信しています。ぜひチェックしてみてください!

株式会社クオンツでは一緒に働く仲間を募集しています
18 いいね!
18 いいね!
同じタグの記事
今週のランキング
株式会社クオンツからお誘い
この話題に共感したら、メンバーと話してみませんか?