Anypoint Studio を使用した Salesforce Connector 10.22 の設定 - Mule 4

Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。

Studio でコネクタを追加および設定する手順は、次のとおりです。

「アプリケーションログの表示」​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。

Studio で初めてコネクタを設定する場合は、​「Anypoint Studio を使用したコネクタの設定」​を参照してください。このトピックを読んだ後でコネクタ項目に関する追加情報が必要な場合は、​「Salesforce リファレンス」​を参照してください。

Mule プロジェクトを作成する

Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。

  1. Studio で、​[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)]​ を選択します。

  2. Mule プロジェクトの名前を入力して、​[Finish (完了)]​ をクリックします。

コネクタを Mule プロジェクトに追加する

Salesforce Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​pom.xml​ ファイルに必須の連動関係を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューで、​[(X) Search in Exchange ((X) Exchange 内を検索)]​ をクリックします。

  2. [Add Modules to Project (モジュールをプロジェクトに追加)]​ で、検索項目に「​salesforce​」と入力します。

  3. [Available modules (使用可能なモジュール)]​ で、そのコネクタ名をクリックします。

  4. [Add (追加)]​ をクリックします。

  5. [Finish (完了)]​ をクリックします。

Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。

ソースの設定

ソースは、指定された条件が満たされたときにフローを開始します。チャネルのサブスクリプションを作成する前に、チャネルまたはトピックを Salesforce にパブリッシュする必要があります。

次のソースのいずれかを Salesforce Connector で使用するように設定できます。

  • On Deleted Object

    Salesforce ユーザーがオブジェクトを削除した時点でアプリケーションを開始します。​Contact​、​Lead​、​Account​、​Contracts​、​Opportunity​ のオブジェクト種別、またはカスタムオブジェクト名を指定できます。

  • On Modified Object

    Salesforce ユーザーがオブジェクトを変更した時点でアプリケーションを開始します。​Contact​、​Lead​、​Account​、​Contracts​、​Opportunity​ のオブジェクト種別、またはカスタムオブジェクト名を指定できます。

  • On New Object

    Salesforce ユーザーがオブジェクトを作成した時点でアプリケーションを開始します。​Contact​、​Lead​、​Account​、​Contracts​、​Opportunity​ のオブジェクト種別、またはカスタムオブジェクト名を指定できます。

  • Replay channel listener

    ストリーミングチャネルをサブスクライブします。このソースでは、24 時間の保持期間内の新規イベントおよび Salesforce で保存されたイベントについてチャネル関連の通知設定が提供されます。指定されたチャネルソースでイベントが発生するとフローがトリガーされます。

  • Replay topic listener

    トピックをサブスクライブします。このソースでは、24 時間の保持期間内の新規イベントおよび Salesforce で保存されたイベントについてトピック関連の通知設定が提供されます。レコードの指定されたトピックでイベントが発生するとフローがトリガーされます。

  • Subscribe channel listener

    ストリーミングチャネルをサブスクライブします。このソースでは、サブスクライブ後に発生した新規イベントについてチャネル関連の通知設定が提供されます。

  • Subscribe topic listener

    トピックをサブスクライブします。このソースでは、サブスクライブ後に発生した新規イベントについてトピック関連の通知設定が提供されます。

  • [HTTP] > [Listener]​。

    設定されたホストとポートで要求を受信するたびにフローを開始する

  • Scheduler

    時間ベースの条件が満たされたときにフローを開始します。

チャネルのサブスクリプションを作成する前に、チャネルまたはトピックを Salesforce にパブリッシュする必要があります。

ソースの設定の例

たとえば、​On New Object​ をソースとして設定する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ ビューで、​[On New Object]​ を選択します。

  2. [On New Object]​ を Studio キャンバスにドラッグします。

  3. On New Object のプロパティウィンドウで、​[Path (パス)]​ 項目の値を指定します。

  4. 必要に応じて ​[Display Name (表示名)]​ 項目の値を変更します。

  5. オブジェクト種別を選択し、必要に応じて ​[Since (開始日)]​ 項目に UTC 値を指定します。

    サーバーのタイムゾーンが異なる場合は、​[Since (開始日)]​ 項目に値を指定する必要があります。この項目を空白にすると、コネクタはローカルタイムスタンプを使用します。

  6. [Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックして、アプリケーション内の ​On New Object​ ソースのすべてのインスタンスで使用できるグローバル要素を設定します。

  7. [TLS]​ タブで、必要に応じてコネクタの TLS 情報を指定します。

  8. [Advanced (詳細)]​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。

  9. [Test Connection (接続をテスト)]​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。

  10. [OK]​ をクリックします。

Redelivery Policy (再配信ポリシー)

ソースの再配信ポリシーを設定するには、ソースのプロパティウィンドウの ​[Redelivery (再配信)]​ 項目を最初の失敗後の再配信の最大試行回数に設定します。

このポリシー用のオブジェクトストアを指定できます。オブジェクトストアを指定しない場合、Mule が非永続的なオブジェクトストアを作成します。オブジェクトストアとやり取りするために使用されるトランザクションの数は、再配信ポリシーで設定した再試行回数に基づいて変動します。

再配信ポリシーの設定についての詳細は、​「再配信ポリシー」​を参照してください。

フローにコネクタの操作を追加する

フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。

Salesforce Connector の操作を追加する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ ビューで ​[Salesforce]​ を選択し、目的の操作を選択します。

  2. その操作を Studio キャンバスの入力元の右にドラッグします。

コネクタのグローバル要素を設定する

コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定します。グローバル要素を設定するには、コネクタが対象の Salesforce システムにアクセスするために使用する認証ログイン情報を指定する必要があります。

ANT スタイルのプロパティプレースホルダーを含む設定ファイルを参照するか (推奨)、グローバル設定プロパティに認証ログイン情報を入力できます。プロパティプレースホルダーを使用する利点とその設定方法については、​「Anypoint Connector 設定」​を参照してください。

Salesforce Connector のグローバル要素を設定する手順は、次のとおりです。

  1. Studio キャンバスでコネクタの名前を選択します。

  2. 操作の設定画面で、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (+) をクリックし、グローバル要素設定項目にアクセスします。

  3. [General (一般)]​ タブで、次のいずれかの接続の認証方法を選択します。

  4. [Apex]​ タブで、必要に応じて ​Apex 設定​を定義します。

  5. [Advanced (詳細)]​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。

  6. [Test Connection (接続をテスト)]​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。

  7. [OK]​ をクリックします。

Authentication (認証)

すべての OAuth 接続で、各リソースのオーナーの ID データを保存するオブジェクトストアを指定できます。オブジェクトストアを指定しない場合、Mule が自動的にデフォルトのオブジェクトストアをプロビジョニングします。アプリケーションは新しいリソースオーナーが認証されると自動的にオブジェクトストアとやり取りし、アクセストークンが更新されるか、アクセストークンが無効化されます。

すべての認証種別で相互 TLS をサポートしています。相互 TLS を使用するには、キーストアファイルとファイルのパスワードが必要です。詳細は「​「キーストアファイルの生成」​」を参照してください。

Studio でコネクタの認証方法を設定するときに、​[Security (セキュリティ)]​ タブでキーストアファイルへのパスと TLS パスワードを指定します。

Salesforce 環境で相互 TLS 証明書をセットアップする方法については、 「相互認証証明書の設定」Leaving the Site​を参照してください。

基本認証

基本認証では、認証にユーザー名とパスワードを使用します。

[General (一般)]​ タブの重要な項目には、次のような項目があります。

項目 説明

Username (ユーザー名)

Salesforce ユーザー名。

Password (パスワード)

対応するパスワード。

Security token (セキュリティトークン)

対応するセキュリティトークン。

Callback path (コールバックパス)

コールバックのパス (​/callback​ など)。

認証 URL

ユーザー認証を担当する Web サービス URL。これは SOAP 認証要求を処理するように設定されているエンドポイントの URL です。デフォルトは、コネクタによってサポートされる最新の API バージョンが含まれる URL です (例: https://login.salesforce.com/services/Soap/u/60.0​)。

OAuth 2.0 Authentication (認証)

OAuth 2.0 を使用して、ユーザーアカウントをホストするサービスにユーザー認証を委任します。詳細は、​「コネクタの OAuth 2.0 の設定」​または​「CloudHub でのコネクタの OAuth 2.0 の設定」​を参照してください。

OAuth 2.0 では、ユーザーアカウントをホストするサービスにユーザー認証を委任します。

[General (一般)]​ タブの重要な項目には、次のような項目があります。

項目 説明

Consumer key (コンシューマーキー)

Salesforce 接続アプリケーションのコンシューマーキー。コンシューマーキーの生成については、Salesforce ドキュメントを参照してください。

Consumer secret (コンシューマーシークレット)

キーストアのパスワード。

Listener config (リスナー設定)

リスナーの設定 (HTTP_Listener_config など)。

Callback path (コールバックパス)

コールバックのパス (​/callback​ など)。

Authorize path (認証パス)

認証のパス (​/authorize​ など)。

External call back url (外部コールバック URL)

コールバック URL (​http://localhost:8085/callback​ など)。

[Advanced (詳細)]​ タブの重要な項目には、次のような項目があります。

項目 説明

Api version (API バージョン)

使用する API バージョン。デフォルトは、コネクタによってサポートされる最新の API バージョンです。

OAuth JWT 認証

OAuth JWT では、JSON Web トークン (JWT) 要求を使用する OAuth 2.0 を使用してユーザー認証を行います。

[General (一般)]​ タブの重要な項目には、次のような項目があります。

項目 説明

Consumer key (コンシューマーキー)

Salesforce 接続アプリケーションのコンシューマーキー。コンシューマーキーの生成については、Salesforce ドキュメントを参照してください。

Key store (キーストア)

認証時にデータに署名するキーストアへのパス。「​「キーストアファイルの生成」​」を参照してください。

Store password (ストアのパスワード)

キーストアのパスワード。

Password (パスワード)

対応するパスワード。

Certificate Alias (証明書の別名)

指定されたキーストアに複数の証明書が含まれている場合に使用する証明書の別名。

Principal (プリンシパル)

Salesforce ユーザーのユーザー名。

[Advanced (詳細)]​ タブの重要な項目には、次のような項目があります。

項目 説明

Api version (API バージョン)

使用する API バージョン。デフォルトは、コネクタによってサポートされる最新の API バージョンです。

OAuth SAML 認証

現在、OAuth SAML では ID プロバイダーとして Salesforce のみを使用します。Salesforce を ID プロバイダーとして有効にするには 「SAML ID プロバイダーとしての Salesforce」Leaving the Site​を参照してください。

OAuth SAML では、署名付き SAML 2.0 アサーションを使用する OAuth 2.0 を使用してアクセストークンを要求します。

[General (一般)]​ タブの重要な項目には、次のような項目があります。

項目 説明

Consumer key (コンシューマーキー)

Salesforce 接続アプリケーションのコンシューマーキー。コンシューマーキーの生成については、Salesforce ドキュメントを参照してください。

Key store (キーストア)

認証時にデータに署名するキーストアへのパス。「​「キーストアファイルの生成」​」を参照してください。

Store password (ストアのパスワード)

キーストアのパスワード。

Password (パスワード)

対応するパスワード。

Certificate Alias (証明書の別名)

指定されたキーストアに複数の証明書が含まれている場合に使用する証明書の別名。

Principal (プリンシパル)

Salesforce ユーザーのユーザー名。

[Advanced (詳細)]​ タブの重要な項目には、次のような項目があります。

項目 説明

Api version (API バージョン)

使用する API バージョン。デフォルトは、コネクタによってサポートされる最新の API バージョンです。

OAuth ユーザー名/パスワード認証

OAuth ユーザー名/パスワード認証では、ユーザーとパスワードを使用する OAuth 2.0 を使用して認証を行います。

[General (一般)]​ タブの重要な項目には、次のような項目があります。

項目 説明

Consumer key (コンシューマーキー)

Salesforce 接続アプリケーションのコンシューマーキー。コンシューマーキーの生成については、Salesforce ドキュメントを参照してください。

Consumer secret (コンシューマーシークレット)

Salesforce にアクセスするコネクタのコンシューマーシークレット。

Username (ユーザー名)

Salesforce ユーザー名。

Password (パスワード)

対応するパスワード。

Security token (セキュリティトークン)

対応するセキュリティトークン。

[Advanced (詳細)]​ タブの重要な項目には、次のような項目があります。

項目 説明

Api version (API バージョン)

使用する API バージョン。デフォルトは、コネクタによってサポートされる最新の API バージョンです。

Apex の設定

Salesforce に接続すると、Salesforce Connector は、Apex クラスと呼び出し可能な関連付けられたメソッドの名前を取得します。

Studio で Apex を設定する手順は、次のとおりです。

  1. [global element properties (グローバル要素のプロパティ)] 画面にある ​[Apex]​ タブをクリックします。

  2. 次の情報を入力します。

    項目 説明

    Fetch All Apex SOAP Metadata (すべての Apex SOAP メタデータを取得)

    すべての Apex SOAP クラスのメタデータを取得します。[Apex Class Name (Apex クラス名)] 設定よりも優先されます。

    Fetch All Apex REST Metadata (すべての Apex REST メタデータを取得)

    すべての Apex REST クラスのメタデータを取得します。[Apex Class Name (Apex クラス名)] 設定よりも優先されます。

    Apex Class Names (Apex クラス名)

    取得するクラスとクラスで公開されるメソッドのセットを制限するために使用する Apex クラス名のリスト。この設定により、多くのクラスを取得する必要がない場合に取得プロセスを高速化できます。有効値:

    • None (なし)

      DataSense で取得するクラスは指定されません。

    • From a message (メッセージから)

      式を使用してクラス名を指定できます。

    • Create object manually (オブジェクトを手動で作成)

      DataSense が取得するクラス名のリストを作成できます。DataSense は、それらのクラスと関連付けられたメソッドのみを取得します。

その他のコネクタ項目の設定

Salesforce Connector のグローバル要素を設定したら、コネクタの他の必須項目を設定します。

次の例は、Salesforce Connector で設定できる多くの操作のうちの 4 つの操作と、それらの操作の重要な項目を示しています。

操作 説明

Create (作成)

1 件以上の新規レコードを組織のデータに追加します。重要な項目を次に示します。

  • Salesforce オブジェクトの種別

  • Records (レコード)

    関数エディターの式

Query (クエリ)

指定されたオブジェクトに対してクエリを実行し、指定された条件と一致するデータを返します。重要な項目を次に示します。

  • Salesforce query (Salesforce クエリ)

    オブジェクトを取得する Salesforce クエリ

  • パラメーター

    Salesforce クエリのプレースホルダーの値

Update (更新)

組織のデータ内の 1 件以上の既存のレコードを更新します。重要な項目を次に示します。

  • Salesforce オブジェクトの種別

  • Records (レコード)

    更新する Salesforce オブジェクトのコレクションを生成する関数エディターの式

Delete (削除)

1 件以上の新規レコードを組織のデータから削除します。重要な項目を次に示します。

  • Records To Delete IDs (削除するレコードの ID)

    削除する Salesforce オブジェクトのコレクションを生成する関数エディターの式

アプリケーションログの表示

問題を確認するため、アプリケーションログを次の方法で表示できます。

  • アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。

  • コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。

アプリケーションのログファイル (​log4j2.xml​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​MULE_HOME/logs/<app-name>.log​ でアプリケーションログを表示することもできます。

次のステップ

Studio のセットアップを完了したら、​「追加の設定情報」​を参照してください。