MuleSoftとSalesforceの連携方法

MuleSoft
MuleSoft

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

目的・ゴール

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

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

Salesforce環境の設定

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

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

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

設定項目設定値
接続アプリケーション名任意名(今回はMuleとの接続なので「Mulesoft」とする)
API参照名任意名(今回はMuleとの接続なので「Mulesoft」とする)
取引先責任者メール任意のメールアドレス
OAuth設定の有効化チェック
コールバックURL必須項目だが今回は使用しないため、任意の値でOK
選択したOAuth範囲フルアクセス(full)

接続アプリケーション作成後、「コンシューマ鍵」、「コンシューマの秘密」が発行されるのでその値を控えておきましょう。後に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の接続情報を入力します。

設定項目設定内容
Name任意名(画像ではSalesforce_Config)
ConnectionOAuth Username Password
Consumer key接続アプリケーションで取得したコンシューマ鍵
Consumer key接続アプリケーションで取得したしたコンシューマ鍵
Username接続するSalesforceユーザのユーザ名
Password接続するSalesforceユーザのパスワード
Security token接続するSalesforceユーザのセキュリティトークン
Token endpointSalesforce環境に合わせてエンドポイントを設定
DE環境であれば
https://login.salesforce.com/services/oauth2/token
Sandbox環境であれば
https://test.salesforce.com/services/oauth2/token

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

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

%dw 2.0
output application/json
---
payload

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

実行結果

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

最後に

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

セールスフォースのご相談・お問い合わせ

タイトルとURLをコピーしました