MuleSoftとSalesforceの連携

前回は簡単ではありましたが、APIをSandbox環境にデプロイするところまで行きました。今回は実際にSalesforceと接続してみたいと思います。

スポンサーリンク

Salesforce接続のための準備

Salesforceと接続するために、接続情報を準備します。今回は一番シンプルなBasic認証を使用するため、以下の情報を控えておきましょう。

  • ログインURL
  • ユーザID
  • パスワード
  • セキュリティトークン

セキュリティトークンは個人設定から「私のセキュリティトークンのリセット」セキュリティトークンは信頼済みIPアドレスの範囲内でのログインであれば、不要です。

セキュリティトークンのリセット

セキュリティトークンをリセットするとメールにセキュリティトークンが送付されるので、それを控えておきましょう。

セキュリティトークンの送付

Salesforceとの接続にはコネクタを使う

Salesforceとの接続にはSalesforceコネクタを使用します。

パレット右の「Salesforce」をAdd Moduleにドラッグ&ドロップしましょう。

Salesforceをモジュールに追加

Salesforceのコンポーネントが使え、プロジェクトに必要な依存関係がロードされます。

Salesforceコネクタ

Salesforceにおける様々な機能が提供されています。MuleSoftが提供するSalesforce Connectorが使用できるようになるため、詳しい使い方についてはリファレンスを参照してください。

Salesforce Configの設定

Salesforceのコネクタに接続情報を設定します。

前回作成した「/hellomule」とは別のHTTP Listenerをキャンバス上に配置します。今回はSalesforceのAccountを取得するため、「/getaccount」というパスにします。

次に、SalesforceのQueryを配置します。HTTP Listenerの直後にMulePaletteのSalesforceのQueryをドラッグアンドドロップします。

なお、本記事ではQueryを使用していますが、バージョン10.14では非推奨のコネクタとなっています。今回は説明のためにQueryを使用しますが、代わりにQuery xml streamを使用することが推奨されています。

SalesforceのQueryコネクタ配置

QueryのConnector configurationには以下のSalesforceの接続情報を記入します。今回はユーザ名とパスワードによるBasic認証を使用します。

項目設定内容
Name任意の名前を入力、ここではデフォルトの「Salesforce_Config」を適用
ConnectionBasic Authentication(Basic認証)
UsernameSalesforce環境のユーザID
PasswordSalesforce環境のパスワード
Security token上記セキュリティトークンのリセットで得たセキュリティトークンをコピペ
Authorization URLDE環境を含むドメインを設定していない環境であればデフォルト(未記入)のままでOK
Sandbox環境であればloginをtestに変える
ドメインが定義されている場合はloginをドメイン名に変える
Salesforce Configの設定内容

Test Connectionで設定したユーザで接続を試みます。「Test connection successful」と出れば接続成功です。このSalesforce ConfigをQueryのConnector configurationに設定します。

上記で設定したユーザ名などは、直接入力ではなくて、configファイルでの外出しが推奨されています。今回は簡単な接続と動作確認を目的としているため、configによるユーザ情報の外出しについては割愛します。

Queryコネクタは名前の通り、Salesforceのクエリーを実行するコネクタになります。QueryのSalesforce queryにSOQLを設定することで、指定したレコードが返却されます。

ということで、以下のAccountを取得するSOQLを入力します。

Select Id, Name From Account

これでSalesforceからAccount情報を取得することができます。最後にQueryの後にLoggerを入れて、プロジェクトの保存と実行をします。

取得したレコードをJSON形式に変換

リファレンスを見ると、QueryはObjectの配列を返却します。より処理がしやすいように、取得したAccountをJSON形式に変換しましょう。

Queryの直後にTransform Messageを追加します。Transform Messageは様々な入力型を別の形に変換させるMuleプロジェクトでは非常によく使用するコンポーネントとなります。

Transform Messageを追加

変換ロジックについてはDataweaveという言語を使って変換されますが、今回は難しい説明は避け、Transform MessageのOutputの欄に以下内容を記入します。

%dw 2.0
output application/json
---
payload
Transform Messageへ変換ルールを記入

簡単に内容を説明すると、QueryコンポーネントでJavaのデータ型で返してきたものを、JSONに変換する処理を行なっています。イメージとしてはこんな感じ。

Transform Messageの変換イメージ

Transform Messageまで設置したら、保存してプロジェクトを実行しましょう。

Advanced REST ClientでURLを「http://localhost:8081/getaccounts」と入力して送信すると、ご覧の通りSalesforceから取得したAccount情報がJSON形式でレスポンスとして返ってきます。

レスポンスにJSON形式のAccount情報が返却される

これで、Salesforceへの接続やデータの取得ができたことが分かります。今回はQueryを使っての検証でしたが、もちろん他のコネクタを使えばSalesforceにおける様々な操作が実現可能になります。

MuleSoft
スポンサーリンク
エスパーラボ

コメント