Salesforce Connector 10.17 の例 - Mule 4

データの受け入れと変換

この例は、新規 Salesforce 取引先の作成と新規取引先の照会を行うように Salesforce Connector を設定する方法と、File Connector を使用して新規取引先データをファイルに書き込む方法を示しています。この例には次の 3 つのフローが含まれます。

  • 最初のフロー: 新規取引先のデータを提供するために使用する HTML 入力フォームのテンプレートを設定します。

  • 2 番目のフロー: HTML 入力フォームの情報に基づいて新規 Salesforce 取引先を作成します。

  • 3 番目のフロー: 新規取引先を名前で照会し、新規取引先データを CSV ファイルに書き込みます。

データの受け入れと変換のフロー

最初のフローを設定する

新規取引先の作成に使用されるデータを提供する HTML テンプレートを設定する最初のフローを設定します。最初のフローを作成するには、​Listener​ コンポーネントと ​Parse Template​ コンポーネントを設定する必要があります。

HTTP リスナーを設定する

/account​ パスへのコールが行われたときに Mule フローを開始するように ​Listener​ コンポーネントを設定します。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューから、​[HTTP]​ を選択して ​[Listener]​ コンポーネントをキャンバスにドラッグします。

  3. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  4. デフォルトを受け入れます。

  5. プロパティウィンドウで、​[Path (パス)]​ 項目値を ​/account​ に設定します。

Parse Template コンポーネントを追加する

HTML フォーム (​form.html​) のテンプレートを作成する ​Parse Template​ コンポーネントを追加します。これはメインリソースフォルダーに配置され、新規取引先を作成するための情報を伝達するために使用されます。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Parse Template]​ コンポーネントを ​[Listener]​ の右側にドラッグします。

  2. プロパティウィンドウで、次の項目を設定します。

    項目

    Display Name (表示名)

    コンポーネントの名前 (​Parse Template​ など)。

    Location (場所)

    form.html

    次の画像は、プロパティウィンドウでの ​Parse Template​ 設定の例を示しています。

    Parse Template プロパティウィンドウ設定

2 番目のフローを設定する

HTTP 入力フォームのデータに基づいて新規 Salesforce 取引先を作成する 2 番目のフローを設定します。2 番目のフローを作成するには、​Listener​ コンポーネント、​Transform Message​ コンポーネント、​Create​ 操作、2 つ目の ​Transform Message​ コンポーネントを設定する必要があります。

HTTP リスナーを設定する

/createAccount​ パスへのコールが行われたときに Mule フローを開始するように ​Listener​ コンポーネントを設定します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[HTTP]​ を選択して ​[Listener]​ コンポーネントをキャンバスにドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. デフォルトを受け入れます。

  4. プロパティウィンドウで、​[Path (パス)]​ 項目値を ​/createAccount​ に設定します。

最初の [Transform Message] コンポーネントを追加する

HTTP 入力フォームの値を Java 形式に変換して ​Create​ 操作への入力として使用できるようにする最初の ​Transform Message​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Listener]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/java
    ---
    [{
    
      Name: payload.Name,
      AccountNumber: payload.AccountNumber,
      BillingCity: payload.BillingCity
    }]

Create 操作を追加する

Transform Message​ コンポーネントにより渡された項目値を使用して新規 Salesforce アカウントを作成する ​Create​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Salesforce]​ を選択して ​[Create]​ 操作を ​[Transform Message]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. 接続に応じてグローバル要素を設定します。次に例を示します。

    項目

    Username (ユーザー名)

    ${salesforce.username}

    Password (パスワード)

    ${salesforce.password}

    Security (セキュリティ)

    ${salesforce.securityToken}

    Authorization URL (認証 URL)

    https://login.salesforce.com/services/Soap/u/53.0

    次の画像は、グローバル要素の ​Create​ 設定の例を示しています。

    Create グローバル要素設定ウィンドウ
  4. プロパティウィンドウで、次の項目を設定します。

    項目

    Display Name (表示名)

    コネクタ操作の名前。

    Connector configuration (コネクタ設定)

    作成したばかりのグローバル設定。

    Type (型)

    Account

    Records (レコード)

    payload

    次の画像は、プロパティウィンドウでの ​Create​ 設定の例を示しています。

    Create プロパティウィンドウ設定

2 つ目の [Transform Message] コンポーネントを追加する

項目値を JSON 形式に変換して File Connector で使用できるようにする 2 つ目の ​Transform Message​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Create]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/json
    ---
    payload map {
      id:$.id,
      errors:$.errors,
      success:$.success
    
    }

3 番目のフローを設定する

新規 Salesforce 取引先を名前で照会し、一致する取引先データを Java ファイルに書き込む 3 番目のフローを設定します。3 番目のフローを作成するには、​On New Object​ ソース、​Query result list​ 操作、​Query result stream by id​ 操作、​Transform Message​ コンポーネント、​Write​ 操作を設定する必要があります。

On New Object ソースを設定する

/account​ パスに新規取引先が作成されたときに Mule フローを開始するように ​On New Object​ ソースを設定します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Salesforce]​ を選択して ​[On New Object]​ ソースをキャンバスにドラッグします。

  2. プロパティウィンドウで、次の項目を設定します。

    項目

    Display Name (表示名)

    コネクタ操作の名前。

    Connector configuration (コネクタ設定)

    作成したばかりのグローバル設定。

    Type (型)

    Account

    次の画像は、プロパティウィンドウでの ​On New Object​ 設定の例を示しています。

    On New Object プロパティウィンドウ設定

Query Result List 操作を追加する

結果 ID のリストを返す ​Query result list​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Salesforce]​ を選択して ​[Query result list]​ 操作を ​[On New Object]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. 接続に応じてグローバル要素を設定します。次に例を示します。

    項目

    Username (ユーザー名)

    ${salesforce.username}

    Password (パスワード)

    ${salesforce.password}

    Security (セキュリティ)

    ${salesforce.securityToken}

    Authorization URL (認証 URL)

    https://login.salesforce.com/services/Soap/u/53.0

    次の画像は、グローバル要素の ​Query result list​ 設定の例を示しています。

    Query result list グローバル要素設定ウィンドウ
  4. プロパティウィンドウで、次の項目を設定します。

    項目

    Display Name (表示名)

    コネクタ操作の名前。

    Connector configuration (コネクタ設定)

    作成したばかりのグローバル設定。

    Batch info (バッチ情報)

    payload

    次の画像は、プロパティウィンドウでの ​Query result list​ 設定の例を示しています。

    Query result list プロパティウィンドウ設定

Query Result Stream by Id 操作を追加する

最終クエリ結果を取得する ​Query result stream by id​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Salesforce]​ を選択して ​[Query result stream by id]​ 操作を ​[Query result list]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. 接続に応じてグローバル要素を設定します。次に例を示します。

    項目

    Username (ユーザー名)

    ${salesforce.username}

    Password (パスワード)

    ${salesforce.password}

    Security (セキュリティ)

    ${salesforce.securityToken}

    Authorization URL (認証 URL)

    https://login.salesforce.com/services/Soap/u/53.0

    次の画像は、グローバル要素の ​Query result stream by id​ 設定の例を示しています。

    Query result stream by id グローバル要素設定ウィンドウ
  4. プロパティウィンドウで、次の項目を設定します。

    項目

    Display Name (表示名)

    コネクタ操作の名前。

    Connector configuration (コネクタ設定)

    作成したばかりのグローバル設定。

    Batch info (バッチ情報)

    payload

    次の画像は、プロパティウィンドウでの ​Query result stream by id​ 設定の例を示しています。

    Query result stream by id プロパティウィンドウ設定

[Transform Message] コンポーネントを追加する

項目値を JSON 形式に変換して File Connector で使用できるようにする ​Transform Message​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Query result stream by id]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/json
    ---
    payload map {
        AccountNumber:$.AccountNumber,
        BillingAddress:$.BillingAddress,
        Id:$.Id,
        Name:$.Name
    }

Write 操作を追加する

新規取引先データを CSV ファイルに書き込む ​Write​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[File (ファイル)]​ を選択して ​[Write]​ 操作を ​[Transform Message]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. 接続に応じてグローバル要素を設定します。次に例を示します。

    項目

    Working Directory (作業ディレクトリ)

    [Connection (接続)]​ が選択されている場合、このコネクタで使用するすべての相対パスのルートとみなされるディレクトリ。指定しない場合、デフォルトの ​user.home​ システムプロパティの値になります。このシステムプロパティが設定されていない場合、コネクタは初期化に失敗します。

    次の画像は、グローバル要素の ​Write​ 設定の例を示しています。

    Write グローバル要素設定ウィンドウ
  4. プロパティウィンドウで、次の項目を設定します。

    項目

    Display Name (表示名)

    コネクタ操作の名前。

    Connector configuration (コネクタ設定)

    作成したばかりのグローバル設定。

    Path (パス)

    /account

    Content (コンテンツ)

    payload

    次の画像は、プロパティウィンドウでの ​Write​ 設定の例を示しています。

    Write プロパティウィンドウ設定

この例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:file="http://www.mulesoft.org/schema/mule/file"
  xmlns:salesforce="http://www.mulesoft.org/schema/mule/salesforce"
  xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
  xmlns:http="http://www.mulesoft.org/schema/mule/http"
  xmlns="http://www.mulesoft.org/schema/mule/core"
  xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd http://www.mulesoft.org/schema/mule/core
  http://www.mulesoft.org/schema/mule/core/current/mule.xsd
  http://www.mulesoft.org/schema/mule/http
  http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
  http://www.mulesoft.org/schema/mule/ee/core
  http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
  http://www.mulesoft.org/schema/mule/salesforce
  http://www.mulesoft.org/schema/mule/salesforce/current/mule-salesforce.xsd
  http://www.mulesoft.org/schema/mule/file
  http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
  <configuration-properties file="mule-app.properties"/>
  <http:listener-config name="HTTP_Listener_config"
   doc:name="HTTP Listener config" >
  <http:listener-connection host="localhost" port="8081" />
  </http:listener-config>
  <salesforce:sfdc-config name="Salesforce_Sfdc_config"
   doc:name="Salesforce SFDC config">
    <salesforce:basic-connection
    username="${salesforce.username}"
    password="${salesforce.password}"
    securityToken="${salesforce.securityToken}" />
  </salesforce:sfdc-config>
  <file:config name="File_Config" doc:name="File Config" doc:id="a62aaa19-2bab-4717-8758-ec09caec2a51" >
		<file:connection />
	</file:config>
	<flow name="crud_app_template">
    <http:listener config-ref="HTTP_Listener_config"
     path="/" doc:name="Listener" />
    <parse-template location="form.html" doc:name="Parse Template"  />
  </flow>
  <flow name="create_accountFlow" >
    <http:listener config-ref="HTTP_Listener_config"
     path="/createAccount" doc:name="Listener"  />
    <ee:transform doc:name="Transform Message" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
[{

  Name: payload.Name,
  AccountNumber: payload.AccountNumber,
  BillingCity: payload.BillingCity
}]]]></ee:set-payload>
      </ee:message>
    </ee:transform>
    <salesforce:create doc:name="Create" type="Account"
     config-ref="Salesforce_Sfdc_config"/>
    <ee:transform doc:name="Transform Message" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload map {
  id:$.id,
  errors:$.errors,
  success:$.success

}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="query_accountFlow" >
    <salesforce:new-object-listener objectType="Account" doc:name="On New Object" doc:id="8b5dec5e-31a2-4b78-9188-b681891898be" config-ref="Salesforce_Sfdc_config">
			<scheduling-strategy >
				<fixed-frequency />
			</scheduling-strategy>
		</salesforce:new-object-listener>
		<salesforce:query-result-list doc:name="Query result list" doc:id="79da7485-339c-4ab6-956a-0684210b2ded" config-ref="Salesforce_Sfdc_config"/>
		<salesforce:query-result-stream-by-id doc:name="Query result stream by id" doc:id="bdf16fc8-017f-439b-b1fc-3bff23d881d8" config-ref="Salesforce_Sfdc_config"/>
    <ee:transform doc:name="Transform Message"  >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload map {
    AccountNumber:$.AccountNumber,
    BillingAddress:$.BillingAddress,
    Id:$.Id,
    Name:$.Name
}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
		<file:write doc:name="Write" doc:id="83f39edd-bc18-4738-92c0-d3c427108ac4" config-ref="File_Config" path="/account"/>
  </flow>
</mule>

親子リレーション内にあるオブジェクトの作成または更新

この例は、Salesforce Connector を使用して更新/挿入を実行するために必要なオブジェクトリレーション構造を Salesforce 内に作成する方法を示しています。

親子リレーション内にあるオブジェクトの作成または更新フロー

フローを設定する

Salesforce オブジェクトは、オブジェクト間で標準リレーションまたはカスタムリレーションを持つことができます。通常、オブジェクト間リレーションは一対多の (親-子) リレーションですが、Salesforce に存在する 2 つのオブジェクトをどのような形でも結び付けることができます。

この例では親-子リレーションを持つ 2 つのカスタム Salesforce オブジェクト種別を使用しています。

  • Plane__c​: Salesforce に存在する必要がある親オブジェクト

  • Component__c​: Salesforce Connector を使用して更新/挿入するオブジェクト

2 つのカスタムオブジェクト間のリレーションは ​Plane__r​ 項目で表されます。この項目の値は、2 つの項目を含むオブジェクトです。

  • 参照先のオブジェクト種別の名前を値として持つ ​type​ 項目。

    この例では、​type​ の値は ​Plane_c​ です。

  • 参照する親オブジェクトのインスタンスを識別する項目。

    この例では、​Name​ 項目は ​Plane__c​ の ​Cobra​ インスタンスを参照します。

Component__c​ を更新/挿入すると、Salesforce Connector に入力として送信される POJO は次のようになります。

 ----
 [{
 	// Component__c's fields ...
 	Plane__r: {
 		"type": "Plane__c",
 		"Name": "Cobra"
 	}
 }]
----

このフローを作成するには、​Listener​ コンポーネント、​Transform Message​ コンポーネント、​Upsert​ 操作、2 つ目の ​Transform Message​ コンポーネントを設定する必要があります。

HTTP リスナーを設定する

/​ パスへのコールが行われたときに Mule フローを開始するように ​Listener​ コンポーネントを設定します。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューから、​[HTTP]​ を選択して ​[Listener]​ コンポーネントをキャンバスにドラッグします。

  3. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  4. デフォルトを受け入れます。

  5. プロパティウィンドウで、​[Path (パス)]​ 項目値を ​/​ に設定します。

最初の [Transform Message] コンポーネントを追加する

HTTP 入力フォームの値を Java 形式に変換して ​Upsert​ 操作への入力として使用できるようにする最初の ​Transform Message​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Listener]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/java
    ---
    [{
    	Name: "NewPlaneComponent",
    	Plane__r: {
    		"type": "Plane__c",
    		"Name": "Cobra"
    	}
    }]

Upsert 操作を追加する

親-子リレーション内にある Salesforce オブジェクトを作成または更新する ​Upsert​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Salesforce]​ を選択して ​[Upsert]​ 操作を ​[Transform Message]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. 接続に応じてグローバル要素を設定します。次に例を示します。

    項目

    Username (ユーザー名)

    ${salesforce.username}

    Password (パスワード)

    ${salesforce.password}

    Security (セキュリティ)

    ${salesforce.securityToken}

    Authorization URL (認証 URL)

    https://login.salesforce.com/services/Soap/u/53.0

    次の画像は、グローバル要素の ​Upsert​ 設定の例を示しています。

    Upsert グローバル要素設定ウィンドウ
  4. プロパティウィンドウで、次の項目を設定します。

    項目

    Display Name (表示名)

    コネクタ操作の名前。

    Connector configuration (コネクタ設定)

    作成したばかりのグローバル設定。

    Object type (オブジェクト種別)

    Component_c

    External id field name (外部 ID 項目名)

    Id

    Records (レコード)

    payload

    次の画像は、プロパティウィンドウでの ​Upsert​ 設定の例を示しています。

    Upsert プロパティウィンドウ設定

2 つ目の [Transform Message] コンポーネントを追加する

値を Java 形式から JSON 形式に変換する 2 つ目の ​Transform Message​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Upsert]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/json
    ---
    payload

この例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:salesforce="http://www.mulesoft.org/schema/mule/salesforce"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
  http://www.mulesoft.org/schema/mule/http
  http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
  http://www.mulesoft.org/schema/mule/ee/core
  http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
  http://www.mulesoft.org/schema/mule/salesforce
  http://www.mulesoft.org/schema/mule/salesforce/current/mule-salesforce.xsd">
	<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="4c035a4e-77bc-4deb-ba9e-9cb2a7ba3c44" >
		<http:listener-connection host="0.0.0.0" port="8081" />
	</http:listener-config>
	<salesforce:sfdc-config name="Salesforce_Config" doc:name="Salesforce Config" doc:id="936529ce-271b-49ac-be36-ca6a2b3d62ea" >
		<salesforce:basic-connection username="user" password="pass" securityToken="token" />
	</salesforce:sfdc-config>
	<flow name="Copy_of_idp-policy-benefitsFlow" doc:id="44a544bf-f94e-4d3d-827d-0882f4771df5" >
		<http:listener doc:name="Listener" doc:id="39aed35b-0147-49f1-a258-26f0cabc854b" config-ref="HTTP_Listener_config" path="/" />
		<ee:transform doc:name="Transform Message" doc:id="82fe7e7d-43f3-433a-bc08-6a0ffb78275e" >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
[{
	Name: "NewPlaneComponent",
	Plane__r: {
		"type": "Plane__c",
		"Name": "Cobra"
	}
}]]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<salesforce:upsert objectType="Component__c" doc:name="Upsert" doc:id="0c3ca1fa-8ea1-4a99-b9b8-68f9db14d99f" config-ref="Salesforce_Config" externalIdFieldName="Id"/>
		<ee:transform doc:name="Transform Message" doc:id="e98409ad-e6cc-4d33-872a-f5e11cf7b869" >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
			</ee:message>
		</ee:transform>
	</flow>
</mule>

取引先の削除

次の例は、Salesforce Connector を使用して Salesforce 取引先を削除する方法を示しています。

取引先の削除フロー

フローを設定する

このフローを作成するには、​Listener​ コンポーネント、​Transform Message​ コンポーネント、​Delete​ 操作、2 つ目の ​Transform Message​ コンポーネントを設定する必要があります。

HTTP リスナーを設定する

/​ パスへのコールが行われたときに Mule フローを開始するように ​Listener​ コンポーネントを設定します。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューから、​[HTTP]​ を選択して ​[Listener]​ コンポーネントをキャンバスにドラッグします。

  3. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  4. デフォルトを受け入れます。

  5. プロパティウィンドウで、​[Path (パス)]​ 項目値を ​/​ に設定します。

最初の [Transform Message] コンポーネントを追加する

HTTP 入力フォームの値を Java 形式に変換して ​Delete​ 操作への入力として使用できるようにする最初の ​Transform Message​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Listener]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/java
    ---
    [payload.Id]

Delete 操作を追加する

Salesforce 取引先を削除する ​Delete​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Salesforce]​ を選択して ​[Delete]​ 操作を ​[Transform Message]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. 接続に応じてグローバル要素を設定します。次に例を示します。

    項目

    Username (ユーザー名)

    ${salesforce.username}

    Password (パスワード)

    ${salesforce.password}

    Security (セキュリティ)

    ${salesforce.securityToken}

    Authorization URL (認証 URL)

    https://login.salesforce.com/services/Soap/u/53.0

    次の画像は、グローバル要素の ​Delete​ 設定の例を示しています。

    Delete グローバル要素設定ウィンドウ
  4. プロパティウィンドウで、次の項目を設定します。

    項目

    Display Name (表示名)

    コネクタ操作の名前。

    Connector configuration (コネクタ設定)

    作成したばかりのグローバル設定。

    Records to Delete Ids (削除するレコードの ID)

    payload

    次の画像は、プロパティウィンドウでの ​Delete​ 設定の例を示しています。

    Delete プロパティウィンドウ設定

2 つ目の [Transform Message] コンポーネントを追加する

値を Java 形式から JSON 形式に変換する 2 つ目の ​Transform Message​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Delete]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/json
    ---
    payload map {
      id:$.id,
      errors:$.errors,
      success:$.success
    }

この例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:file="http://www.mulesoft.org/schema/mule/file"
  xmlns:salesforce="http://www.mulesoft.org/schema/mule/salesforce"
  xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
  xmlns:http="http://www.mulesoft.org/schema/mule/http"
  xmlns="http://www.mulesoft.org/schema/mule/core"
  xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd http://www.mulesoft.org/schema/mule/core
  http://www.mulesoft.org/schema/mule/core/current/mule.xsd
  http://www.mulesoft.org/schema/mule/http
  http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
  http://www.mulesoft.org/schema/mule/ee/core
  http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
  http://www.mulesoft.org/schema/mule/salesforce
  http://www.mulesoft.org/schema/mule/salesforce/current/mule-salesforce.xsd
  http://www.mulesoft.org/schema/mule/file
  http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
  <configuration-properties file="mule-app.properties"/>
  <http:listener-config name="HTTP_Listener_config"
   doc:name="HTTP Listener config" >
  <http:listener-connection host="localhost" port="8081" />
  </http:listener-config>
  <salesforce:sfdc-config name="Salesforce_Sfdc_config"
   doc:name="Salesforce SFDC config">
    <salesforce:basic-connection
    username="${salesforce.username}"
    password="${salesforce.password}"
    securityToken="${salesforce.securityToken}" />
  </salesforce:sfdc-config>

  <flow name="delete-account" >
		<http:listener doc:name="Listener" doc:id="9744668a-66e4-4d69-8f1d-f3bfbd3e77be" config-ref="HTTP_Listener_config" path="/Delete"/>
		<ee:transform doc:name="Transform Message" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
[payload.Id]]]></ee:set-payload>
      </ee:message>
    </ee:transform>
    <salesforce:delete doc:name="Delete" doc:id="e4ad1f41-8409-42b6-ba90-e6a26e60a7ba" config-ref="Salesforce_Sfdc_config"/>
		<ee:transform doc:name="Transform Message" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload map {
  id:$.id,
  errors:$.errors,
  success:$.success
}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
</mule>

重複する取引先の検索

次の例は、Salesforce Connector を使用して重複する Salesforce 取引先を検索する方法を示しています。

重複する取引先の検索フロー

フローを設定する

このフローを作成するには、​Listener​ コンポーネント、​Transform Message​ コンポーネント、​Find duplicates​ 操作、2 つ目の ​Transform Message​ コンポーネントを設定する必要があります。

HTTP リスナーを設定する

/findDuplicates​ パスへのコールが行われたときに Mule フローを開始するように ​Listener​ コンポーネントを設定します。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューから、​[HTTP]​ を選択して ​[Listener]​ コンポーネントをキャンバスにドラッグします。

  3. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  4. デフォルトを受け入れます。

  5. プロパティウィンドウで、​[Path (パス)]​ 項目値を ​/findDuplicates​ に設定します。

最初の [Transform Message] コンポーネントを追加する

HTTP 入力フォームの値を Java 形式に変換して ​Delete​ 操作への入力として使用できるようにする最初の ​Transform Message​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Listener]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/java
    ---
    [
      payload
    ]

Find Duplicates 操作を追加する

重複する Salesforce 取引先を検索する ​Find duplicates​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Salesforce]​ を選択して ​[Find duplicates]​ 操作を ​[Transform Message]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. 接続に応じてグローバル要素を設定します。次に例を示します。

    項目

    Username (ユーザー名)

    ${salesforce.username}

    Password (パスワード)

    ${salesforce.password}

    Security (セキュリティ)

    ${salesforce.securityToken}

    Authorization URL (認証 URL)

    https://login.salesforce.com/services/Soap/u/53.0

    次の画像は、グローバル要素の ​Find duplicates​ 設定の例を示しています。

    Find Duplicates グローバル要素設定ウィンドウ
  4. プロパティウィンドウで、次の項目を設定します。

    項目

    Display Name (表示名)

    コネクタ操作の名前。

    Connector configuration (コネクタ設定)

    作成したばかりのグローバル設定。

    Type (型)

    Account

    Criteria (条件)

    payload

    次の画像は、プロパティウィンドウでの ​Find duplicates​ 設定の例を示しています。

    Find Duplicates プロパティウィンドウ設定

2 つ目の [Transform Message] コンポーネントを追加する

値を Java 形式から JSON 形式に変換する 2 つ目の ​Transform Message​ コンポーネントを追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Core (コア)]​ を選択して ​[Transform Message]​ コンポーネントを ​[Find duplicates]​ の右側にドラッグします。

  2. プロパティウィンドウで、​[Output (出力)]​ セクションの括弧を次の DataWeave コードで上書きします。

    %dw 2.0
    output application/json
    ---
    {
      success: payload.success,
      duplicateResults: {
        (payload.duplicateResults map {
          matchRecords: $.matchResults
        }
        )
      },
      duplicateRuleEntityType: payload.duplicateRuleEntityType,
      duplicateRule: payload.duplicateRule,
      allowSave: payload.allowSave,
      errorMessage: payload.errorMessage
    }

この例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:file="http://www.mulesoft.org/schema/mule/file"
  xmlns:salesforce="http://www.mulesoft.org/schema/mule/salesforce"
  xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
  xmlns:http="http://www.mulesoft.org/schema/mule/http"
  xmlns="http://www.mulesoft.org/schema/mule/core"
  xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd http://www.mulesoft.org/schema/mule/core
  http://www.mulesoft.org/schema/mule/core/current/mule.xsd
  http://www.mulesoft.org/schema/mule/http
  http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
  http://www.mulesoft.org/schema/mule/ee/core
  http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
  http://www.mulesoft.org/schema/mule/salesforce
  http://www.mulesoft.org/schema/mule/salesforce/current/mule-salesforce.xsd
  http://www.mulesoft.org/schema/mule/file
  http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
  <configuration-properties file="mule-app.properties"/>
  <http:listener-config name="HTTP_Listener_config"
   doc:name="HTTP Listener config" >
  <http:listener-connection host="localhost" port="8081" />
  </http:listener-config>
  <salesforce:sfdc-config name="Salesforce_Sfdc_config"
   doc:name="Salesforce SFDC config">
    <salesforce:basic-connection
    username="${salesforce.username}"
    password="${salesforce.password}"
    securityToken="${salesforce.securityToken}" />
  </salesforce:sfdc-config>
  <flow name="find_duplicates_for_account_flow" >
    <http:listener config-ref="HTTP_Listener_config"
     path="/findDuplicates" doc:name="Listener" />
    <ee:transform doc:name="Transform Message" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
[
  payload
]]]></ee:set-payload>
      </ee:message>
    </ee:transform>
    <salesforce:find-duplicates config-ref="Salesforce_Sfdc_config"
     type="Account"
    doc:name="Find duplicates" />
    <ee:transform doc:name="Transform Message" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
  success: payload.success,
  duplicateResults: {
    (payload.duplicateResults map {
      matchRecords: $.matchResults
    }
    )
  },
  duplicateRuleEntityType: payload.duplicateRuleEntityType,
  duplicateRule: payload.duplicateRule,
  allowSave: payload.allowSave,
  errorMessage: payload.errorMessage
}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
</mule>