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

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

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

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

Studio でコネクタを初めて設定する場合は、​「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. [Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックして、アプリケーション内の ​On New Object​ のすべてのインスタンスで使用できるグローバル要素を設定します。

  4. [General (一般)]​ タブで接続種別を選択して、必須項目に入力します。

  5. [Security (セキュリティ)]​ タブで、必要に応じてコネクタの TLS 情報を指定します。

  6. [Advanced (詳細)]​ タブで、必要に応じて接続タイムアウト、プロキシ設定、セッション ID サービスエンドポイント、および再接続情報 (再接続戦略を含む) を指定します。

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

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

  9. [On New Object]​ プロパティウィンドウで、オブジェクト種別を選択し、必要に応じて ​[Since (開始日)]​ 項目に UTC 値を指定します。

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

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

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

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

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

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

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

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

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

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

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

  3. [General (一般)]​ タブで、認証接続種別を設定します。

  4. それぞれの接続オプションに対して、プロキシ値を任意で設定できます。

    • Host (ホスト)

      プロキシサーバーのホスト名

    • Port (ポート)

      プロキシサーバーが実行されるポート番号

    • Username (ユーザー名)

      サーバーにログインするためのユーザー名

    • Password (パスワード)

      対応するパスワード

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

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

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

[Global Element Properties (グローバル要素のプロパティ)]​ 画面の項目を入力したら、メインのコネクタメニューに戻って ​<<[Connector Property Values (コネクタプロパティ値)]>>​ を設定します。

基本認証

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

重要な項目を次に示します。

  • Username​ (ユーザー名) (必須)
    Salesforce ユーザー名

  • Password (パスワード)​ (必須)
    対応するパスワード

  • Security token (セキュリティトークン)
    対応するセキュリティトークン

  • Authorization URL (認証 URL)
    SOAP 認証要求を処理するように設定されているエンドポイントの URL

OAuth 2.0

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

重要な項目を次に示します。

  • Consumer key (コンシューマーキー)​ (必須)
    Salesforce 接続アプリケーションのコンシューマーキー。「​コンシューマーキーの作成​」を参照してください。

  • Consumer secret (コンシューマーシークレット)​ (必須)
    Salesforce にアクセスするコネクタのコンシューマーシークレット

  • Listener config (リスナー設定)​ (必須)
    リスナーの設定 (​HTTP_Listener_config​ など)

  • Callback Path (コールバックパス)​ (必須)
    コールバックのパス (​/callback​ など)

  • Authorize path (認証パス)​ (必須)
    認証のパス (​/authorize​ など)

  • External callback url (外部コールバック URL)
    コールバック URL (​http://localhost:8085/callback​ など)

OAuth JWT

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

重要な項目を次に示します。

  • Consumer key (コンシューマーキー)​ (必須)

    Salesforce 接続アプリケーションのコンシューマーキー。「​コンシューマーキーの作成​」を参照してください。

  • Key store (キーストア)​ (必須)

    「​キーストアファイルの生成​」を参照してください。

  • Store password (ストアのパスワード)​ (必須)

    キーストアのパスワード

  • Certificate Alias (証明書の別名)​ (省略可能)

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

  • Principal (プリンシパル)​ (必須)

    Salesforce ユーザーのユーザー名

OAuth SAML

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

重要な項目を次に示します。

  • Consumer key (コンシューマーキー)​ (必須)

    Salesforce 接続アプリケーションのコンシューマーキー。「​コンシューマーキーの作成​」を参照してください。

  • Key store (キーストア)​ (必須)

    「​キーストアファイルの生成​」を参照してください。

  • Store password (ストアのパスワード)​ (必須)

    キーストアのパスワード

  • Certificate Alias (証明書の別名)​ (省略可能)

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

  • Principal (プリンシパル)​ (必須)

    Salesforce ユーザーのユーザー名

OAuth Username Password

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

重要な項目を次に示します。

  • Consumer key (コンシューマーキー)​ (必須)

    Salesforce 接続アプリケーションのコンシューマーキー。「​コンシューマーキーの作成​」を参照してください。

  • Consumer secret (コンシューマーシークレット)​ (必須)

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

  • Username​ (ユーザー名) (必須)

    Salesforce ユーザー名

  • Password (パスワード)​ (必須)

    対応するパスワード

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

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

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

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

コネクタプロパティ値

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

操作 重要な項目

Create (作成)

  • Type (種別)​: Salesforce オブジェクトの種別。

  • Records (レコード)​: 関数エディターの式

Query (クエリ)

v10.1/salesforce-connector-101

  • Salesforce Query (Salesforce クエリ)​: オブジェクトを取得する Salesforce クエリ。

  • Parameters (パラメーター)​: Salesforce クエリのプレースホルダーの値

Update (更新)

  • Type (種別)​: Salesforce オブジェクトの種別。

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

Delete (削除)

  • Records To Delete IDs (削除するレコードの ID)​: 削除する Salesforce オブジェクトのコレクションを生成する関数エディターの式

コンシューマーキーの作成

Salesforce Connector に OAuth 2.0 をセットアップする場合はコンシューマーキーが必要です。コンシューマーキーは、OAuth JWT と SAML ベアラー設定、OAuth ユーザー名およびパスワード設定で使用されます。

子の手順は、Salesforce を使用してコンシューマーキーを作成する場合の指針を提供し、Salesforce で接続アプリケーションを作成する方法を説明します。ただし、各自の Salesforce インスタンスによって手順が若干異なることがあります。

この手順は、認証ファイル (​salesforce-cert.crt​ など) がすでにあることを前提としています。このファイルがない場合は、Java キーストアと公開キーを生成して作成できます。

  1. Salesforce にログインします。

  2. [設定] の ​[クイック検索]​ ボックスに「​Apps​」と入力します。

  3. [アプリケーションマネージャー]​ をクリックします。

  4. [新規接続アプリケーション]​ をクリックします。

  5. 新しい接続アプリケーションを作成するには、以下を入力します。

    • 接続アプリケーションの名前

    • API 参照名

    • 連絡先メール

  6. [API (OAuth 設定の有効化)]​ セクションで、​[OAuth 設定の有効化]​ チェックボックスをオンにします。

    • [Callback URL (コールバック URL)]​ に入力。

    • [Use Digital Signatures (デジタル署名を使用)]​ チェックボックスをオン。

    • [ファイルの選択]​ をクリックし、公開キーが含まれる Salesforce 証明書 (​salesforce-cert.crt​ など) を読み込む。

      通常、Studio で Mule アプリケーションがあるワークスペースに証明書を保存します。

  7. [選択した OAuth スコープ]​ に次の Oauth スコープを追加して保存します。

    • Full Access (フルアクセス)​ (​full​)

    • Perform Requests On Your Behalf At Any Time (ユーザーに代わっていつでも要求を実行)​ (​refresh_token​、​offline_access​)

  8. アプリケーションの認証を設定します。

  9. [Manage (管理)]​ をクリックします。

  10. [OAuth Policies (OAuth ポリシー)] セクションで、​[Permitted Users (許可されているユーザー)]​ リストを展開し、​[Admin Approved Users are Pre-Authorized (管理者が承認したユーザーは事前承認済み)]​ を選択します。

  11. [Save (保存)]​ をクリックします。

  12. [Profiles (プロファイル)] セクションで、​[Manage Profiles (プロファイルを管理する)]​ をクリックします。

  13. 各自のユーザープロファイルを選択して、​[Save (保存)]​ をクリックします。

  14. [Build (ビルド)]​ > ​[Create (作成)]​ > ​[Apps (アプリケーション)]​ を選択して、接続アプリケーションのリストを返します。

  15. [Connected Apps (接続アプリケーション)] セクションで、作成した接続アプリケーションを選択します。

これで、コネクタの設定で指定する必要のあるコンシューマーキーを表示できます。

キーストアファイルの生成

この例では、JKS キーストアの作成方法について説明します (PKCS12 形式もサポートされています)。

[Key Store (キーストア)] 項目は、認証時にデータへの署名に使用するキーストアへのパスです。

キーストアファイルを生成する手順は、次のとおりです。

  1. Mule ワークスペースに移動し、コマンドプロンプト (Windows) またはターミナル (Mac) を開きます。

  2. 次のコマンドを入力して Enter キーを押します。

    keytool -genkeypair -alias salesforce-cert -keyalg RSA -keystore salesforce-cert.jks
  3. 次の情報を入力します。

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

    • 自身の姓名

    • 自身の組織単位

    • 都道府県の名前と 2 文字の国コード

      システムが、ワークスペースに非公開キーと公開キーのペアが含まれる Java キーストアファイル (JKS 形式) を生成します。

  4. コネクタ設定でキーストアのファイルパスを指定します。

    次のコマンドを入力して Enter キーを押します。

    keytool -exportcert -alias salesforce-cert -file salesforce-cert.crt -keystore salesforce-cert.jks

    システムが、キーストアからワークスペースに公開鍵をエクスポートします。これは、Salesforce インスタンスに入力する必要がある公開キーです。

  5. ワークスペースにキーストア (​salesforce-cert.jks​) と公開キー (​salesforce-cert.crt​) の両方のファイルがあることを確認します。

相互 TLS の使用

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

設定ウィンドウでキーストアファイルへのパスとパスワードを指定します。

相互 TLS

相互 TLS 認証が必要なユーザーは、コネクタを使用してログインできます。

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

Apex の設定

Apex REST と SOAP アクセスは Studio または XML を使用して設定できます。Salesforce に接続すると、Salesforce Connector は、Apex クラスと呼び出し可能な関連付けられたメソッドの名前を取得します。

すべての Salesforce 接続設定で、次の Apex 設定がサポートされます。

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

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

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

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

  • Apex Class Names (Apex クラス名)

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

Apex 設定は Studio で行えます。 「XML 設定」​も参照してください。

[Apex]​ タブをクリックして設定を選択してください。

Apex 設定の値:

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

    すべての Apex SOAP クラスのメタデータを取得します。

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

    すべての Apex REST クラスのメタデータを取得します。

Apex Class Names (Apex クラス名):

[Expression (式)]​、​[Edit inline (インライン編集)]​、または [Bean reference (bean 参照)] には以下のオプションがあります。

  • None (なし)

    取得する DataSense に対する Apex クラス名が何も記述されません。

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

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

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

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

[Fetch All Apex SOAP Metadata (すべての Apex SOAP メタデータを取得)]​ チェックボックスと ​[Fetch All Apex REST Metadata (すべての Apex REST メタデータを取得)]​ チェックボックスは ​[Apex Class Names (Apex クラス名)]​ の設定より優先されます。つまり、これらのボックスがオンになっている場合は、[Apex Class Names (Apex クラス名)] セクションの選択に関係なく、すべての Apex SOAP メタデータまたは Apex REST メタデータが取得されます。

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

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

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

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

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

次のステップ

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