前回は簡単ではありましたが、APIをSandbox環境にデプロイするところまで行きました。今回は実際にSalesforceと接続してみたいと思います。
Salesforce接続のための準備
Salesforceと接続するために、接続情報を準備します。今回は一番シンプルなBasic認証を使用するため、以下の情報を控えておきましょう。
- ログインURL
- ユーザID
- パスワード
- セキュリティトークン
セキュリティトークンは個人設定から「私のセキュリティトークンのリセット」セキュリティトークンは信頼済みIPアドレスの範囲内でのログインであれば、不要です。
セキュリティトークンをリセットするとメールにセキュリティトークンが送付されるので、それを控えておきましょう。
Salesforceとの接続にはコネクタを使う
Salesforceとの接続にはSalesforceコネクタを使用します。
パレット右の「Salesforce」をAdd Moduleにドラッグ&ドロップしましょう。
Salesforceのコンポーネントが使え、プロジェクトに必要な依存関係がロードされます。
Salesforceにおける様々な機能が提供されています。MuleSoftが提供するSalesforce Connectorが使用できるようになるため、詳しい使い方についてはリファレンスを参照してください。
Salesforce Configの設定
Salesforceのコネクタに接続情報を設定します。
前回作成した「/hellomule」とは別のHTTP Listenerをキャンバス上に配置します。今回はSalesforceのAccountを取得するため、「/getaccount」というパスにします。
次に、SalesforceのQueryを配置します。HTTP Listenerの直後にMulePaletteのSalesforceのQueryをドラッグアンドドロップします。
QueryのConnector configurationには以下のSalesforceの接続情報を記入します。今回はユーザ名とパスワードによるBasic認証を使用します。
項目 | 設定内容 |
---|---|
Name | 任意の名前を入力、ここではデフォルトの「Salesforce_Config」を適用 |
Connection | Basic Authentication(Basic認証) |
Username | Salesforce環境のユーザID |
Password | Salesforce環境のパスワード |
Security token | 上記セキュリティトークンのリセットで得たセキュリティトークンをコピペ |
Authorization URL | DE環境を含むドメインを設定していない環境であればデフォルト(未記入)のままでOK Sandbox環境であればloginをtestに変える ドメインが定義されている場合はloginをドメイン名に変える |
Test Connectionで設定したユーザで接続を試みます。「Test connection successful」と出れば接続成功です。このSalesforce ConfigをQueryのConnector configurationに設定します。
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プロジェクトでは非常によく使用するコンポーネントとなります。
変換ロジックについてはDataweaveという言語を使って変換されますが、今回は難しい説明は避け、Transform MessageのOutputの欄に以下内容を記入します。
%dw 2.0 output application/json --- payload
簡単に内容を説明すると、QueryコンポーネントでJavaのデータ型で返してきたものを、JSONに変換する処理を行なっています。イメージとしてはこんな感じ。
Transform Messageまで設置したら、保存してプロジェクトを実行しましょう。
Advanced REST ClientでURLを「http://localhost:8081/getaccounts」と入力して送信すると、ご覧の通りSalesforceから取得したAccount情報がJSON形式でレスポンスとして返ってきます。
これで、Salesforceへの接続やデータの取得ができたことが分かります。今回はQueryを使っての検証でしたが、もちろん他のコネクタを使えばSalesforceにおける様々な操作が実現可能になります。
コメント