---
schema_version: "1"
id: ec50f9ace150afbdc5615e1bcbe3dc1248c52e99c1c8a4c82160501e974987f2
title: Salesforce Composite Connector 2.15 - 例
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/salesforce-composite-connector/2.15/salesforce-composite-connector-examples.md
canonical_url: https://docs.mulesoft.com/jp/salesforce-composite-connector/2.15/salesforce-composite-connector-examples
source_site: docs.mulesoft.com
content_type: documentation
content_hash: b310a7b0c80bf276cbb5d4753fbac64d0dcbced4630f6f99795c691473e050a5
description: MuleSoft Documentation Site
release: "2.15"
latest: false
---
# Salesforce Composite Connector 2.15 - 例

## [](#sobject-tree-操作の例)SObject Tree 操作の例

この例では、次の操作を使用して SObject ツリーを作成し、Salesforce に接続して結果を JSON 形式に変換して出力します。

- HTTP ​**Listener**
    
    HTTP 要求からデータを受け取ります。
- **Transform Message**
    
    HTTP 入力を変換します。
- **Create sobject tree**
    
    Salesforce に接続し、SObject ツリーを作成します。
- **Transform Message**
    
    **Create sobject tree**​ 操作の結果を JSON 形式で出力します。
    
    ![Studio のユースケース](/mulesoft/current/ja-jp/salesforce-composite-connector/2.15/_images/salesforce-composite-studio-use-case.png)
    
    Figure 1. この例のフローには、HTTP Listener コンポーネント、Transform コンポーネント、Create 操作が含まれます。

### [](#http-listener-を追加する)HTTP Listener を追加する

HTTP ​**Listener**​ ソース操作は、​`createSObjectTree`​ パスでイベントを検出したときにフローを開始します。リスナーを追加してフローをトリガーする手順は、次のとおりです。

1. Studio で新しい Mule プロジェクトを作成します。
2. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`http`​」を検索し、​**\[Listener\]**​ 操作を選択します。
3. **Listener**​ 操作をキャンバスにドラッグします。
4. \[Listener\] プロパティウィンドウで、​**\[Path (パス)\]**​ 項目を ​`/createSObjectTree`​ に設定します。

### [](#最初の-transform-message-コンポーネントを追加する)最初の \[Transform Message\] コンポーネントを追加する

最初の Transform Message コンポーネントは、入力データを使用して次の Create 操作の HTTP 入力を変換します。コンポーネントを追加する手順は、次のとおりです。

1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**「Transform Message」**​を検索します。
2. **Transform Message**​ コンポーネントをキャンバスの ​**\[Listener\]**​ の右にドラッグします。
3. 名前 ​`Transform HTTP input for Create SObject Tree`​ を入力します。

次に、Transform Message コンポーネントの HTTP 入力の例を示します。

```json
{
   "records":[
      {
         "ChildAccounts":{
            "records":[
               {
                  "Phone":"4321098765",
                  "Website":"www.salesforce.com",
                  "attributes":{
                     "objectType":"Account",
                     "referenceId":"ref5"
                  },
                  "NumberOfEmployees":"10",
                  "Name":"ChildAccount1"
               }
            ]
         },
         "Contacts":{
            "records":[
               {
                  "Email":"sample@salesforce.com",
                  "Title":"President",
                  "attributes":{
                     "objectType":"Contact",
                     "referenceId":"ref6"
                  },
                  "LastName":"Jones"
               }
            ]
         },
         "Phone":"5556543210",
         "Website":"www.salesforce.com",
         "attributes":{
            "objectType":"Account",
            "referenceId":"ref4"
         },
         "NumberOfEmployees":"101",
         "Name":"CreateSobjectTreeAccount2"
      },
      {
         "Contacts":{
            "records":[
               {
                  "Email":"sample@salesforce.com",
                  "Title":"President",
                  "attributes":{
                     "objectType":"Contact",
                     "referenceId":"ref2"
                  },
                  "LastName":"Smith"
               },
               {
                  "Email":"sample@salesforce.com",
                  "Title":"Vice President",
                  "attributes":{
                     "objectType":"Contact",
                     "referenceId":"ref3"
                  },
                  "LastName":"Evans"
               }
            ]
         },
         "Phone":"1234567890",
         "Website":"www.salesforce.com",
         "attributes":{
            "objectType":"Account",
            "referenceId":"ref1"
         },
         "NumberOfEmployees":"100",
         "Name":"CreateSobjectTreeAccount1"
      }
   ]
}
```

### [](#create-sobject-tree-操作を追加する)Create SObject Tree 操作を追加する

Create SObject Tree 操作を追加して Salesforce に接続し、SObject ツリーを作成します。操作を追加する手順は、次のとおりです。

1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`salesforce`​」を検索し、​**\[Create sobject tree\]**​ を選択します。
2. **\[Create sobject tree\]**​ 操作を ​**\[Transform Message\]**​ の右にドラッグします。
3. **\[Connector configuration (コネクタ設定)\]**​ の右にある緑のプラス記号 (​**+**​) をクリックし、Salesforce Composite グローバル要素設定項目にアクセスします。
4. **\[Create sobject tree\]**​ プロパティウィンドウで、​**\[SObject Root Typ (sObject ルート種別)\]**​ 項目に「​`Account`​」と入力します。
5. プロパティファイル ​`src/main/mule/mule-app.properties`​ で、グローバル要素の変数の値を宣言して入力します。

### [](#2-つ目の-transform-message-コンポーネントを追加する)2 つ目の \[Transform Message\] コンポーネントを追加する

2 つ目の Transform Message コンポーネントは出力結果を JSON に変換します。コンポーネントを追加する手順は、次のとおりです。

1. もう一度 ​**\[Transform Message\]**​ コンポーネントを ​**\[Create sobject tree\]**​ の右にドラッグします。
2. 次の情報を入力します。
    
    ```dataweave
    %dw 2.0
    %output application/json
    payload
    ---
    {
    "Id": payload.Id,
    "Fields" : ["Id", "Name"],
    "Type": "Account"
    }
    ```

### [](#sobject-tree-操作フローの-xml)SObject Tree 操作フローの XML

次の XML コードを Anypoint Studio キャンバスの ​**\[Configuration XML (設定 XML)\]**​ タブに貼り付けて、フローを試してください。

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

<mule xmlns:salesforce-composite="http://www.mulesoft.org/schema/mule/salesforce-composite"
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/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-composite
http://www.mulesoft.org/schema/mule/salesforce-composite/current/mule-salesforce-composite.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-composite:composite-config name="Salesforce_Composite_Salesforce_Composite"
   doc:name="Salesforce Composite Salesforce Composite">
		<salesforce-composite:oauth-user-pass-connection
      consumerKey="${consumerKey}"
      consumerSecret="${consumerSecret}"
      username="${username}"
      password="${password}"
      securityToken="${securityToken}"
      tokenEndpoint="${tokenEndpoint}" />
	</salesforce-composite:composite-config>
	<flow name="salesforce-composite-create-sobject-trees">
		<http:listener doc:name="Listener"
      path="/createSObjectTree"
      config-ref="HTTP_Listener_config"/>
		<ee:transform doc:name="Transform HTTP input for Create SObject Tree">
			<ee:message>
				<ee:set-payload><![CDATA[%dw 2.0
output application/java
---
payload.records map ((record , indexOfRecord) -> {
	"attributes": {
		"type": record.attributes.objectType,
		"referenceId": record.attributes.referenceId
	},
	"Name": record.Name,
	"Phone": record.Phone,
	"Website": record.Website,
	"NumberOfEmployees": record.NumberOfEmployees as Number,
	("ChildAccounts": {
		"records": record.ChildAccounts.records map ((record01, indexOfRecord01) -> {
			"attributes": {
				"type": record01.attributes.objectType,
				"referenceId": record01.attributes.referenceId
			},
			"Name": record01.Name,
			"Phone": record01.Phone,
			"Website": record01.Website,
			"NumberOfEmployees": record01.NumberOfEmployees as Number
		})
	}),
	"Contacts": {
		"records": record.Contacts.records map ((record01, indexOfRecord01) -> {
			"attributes": {
				"type": record01.attributes.objectType,
				"referenceId": record01.attributes.referenceId
			},
			"LastName": record01.LastName,
			"Email": record01.Email,
			"Title": record01.Title
		})
	}
})
]]></ee:set-payload>
			</ee:message>
		</ee:transform>
		<salesforce-composite:create-sobject-tree
      doc:name="Create SObject tree"
      config-ref="Salesforce_Composite_Salesforce_Composite"
      type="Account"/>
		<ee:transform doc:name="Transform Message">
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
			</ee:message>
		</ee:transform>
	</flow>
</mule>
```

## [](#pre-query-の例)Pre-Query の例

この例では、照会するオブジェクトのメタデータを提供し、このメタデータが含まれる 2 つの下位要求を生成して、下位要求を実行します。

- HTTP ​**Listener**
    
    HTTP 要求からデータを受け取ります。
- **Transform Message**
    
    オブジェクトの名前を指定します。
- **Pre create**
    
    作成するオブジェクトのメタデータを提供し、実行で使用される下位要求を生成します。
- **Transform Message**
    
    項目の値を指定します。
- **Pre query**
    
    照会するオブジェクトのメタデータを提供し、実行で使用される下位要求を生成します。
- **Transform Message**
    
    **Pre query**​ 操作から出力を渡します。
- **Execute composite batch**
    
    1 つのバッチですべての下位要求を送信します。
- **Transform Message**
    
    結果を JSON 形式で出力します。
    
    ![Studio の Pre-Query フロー](/mulesoft/current/ja-jp/salesforce-composite-connector/2.15/_images/salesforce-composite-prequery-flow.png)
    
    Figure 2. この例のフローには、HTTP Listener コンポーネント、Transform コンポーネント、複数の Salesfore Composite 操作が含まれます。

### [](#http-listener-を追加する-2)HTTP Listener を追加する

HTTP ​**Listener**​ ソース操作は、​`executeFlow`​ パスでイベントを検出したときにフローを開始します。リスナーを追加してフローをトリガーする手順は、次のとおりです。

1. Studio で新しい Mule プロジェクトを作成します。
2. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`http`​」を検索し、​**\[Listener\]**​ 操作を選択します。
3. **Listener**​ 操作をキャンバスにドラッグします。
4. \[Listener\] プロパティウィンドウで、​**\[Path (パス)\]**​ 項目を ​`/executeFlow`​ に設定します。

### [](#最初の-transform-message-コンポーネントを追加する-2)最初の \[Transform Message\] コンポーネントを追加する

最初の Transform Message コンポーネントは、作成されるオブジェクトの名前を指定し、​**Pre create**​ 操作の名前を渡します。コンポーネントを追加する手順は、次のとおりです。

1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**「Transform Message」**​を検索します。
2. **\[Transform Message\]**​ をキャンバスの ​**\[Listener\]**​ の右にドラッグします。
3. 名前 ​`MyNewAccount`​ を入力します。
    
    ```dataweave
    %dw 2.0
    %output application/java
    ---
    {
       Name: "MyNewAccount"
    }
    ```

### [](#pre-create-操作を追加する)Pre Create 操作を追加する

Pre Create 操作は、​`NewAccount`​ と呼ばれるオブジェクトを作成するためのメタデータを提供し、​`executeCompositeBatch`​ 操作の下位要求を生成します。操作を追加する手順は、次のとおりです。

1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`salesforce`​」を検索し、Salesforce Composite の ​**\[Pre create\]**​ 操作を選択します。
2. **Pre create**​ 操作を ​**\[Transform Message\]**​ の右にドラッグします。
3. **\[Connector configuration (コネクタ設定)\]**​ 項目の右にある緑のプラスアイコン (​**+**​) をクリックし、Salesforce Composite グローバル要素設定項目にアクセスします。
4. **\[Pre create\]**​ プロパティウィンドウで、​**\[Type (種別)\]**​ 項目に「​`Account`​」と入力します。
5. プロパティファイル ​`src/main/mule/mule-app.properties`​ で、グローバル要素の変数の値を宣言して入力します。

![Salesforce Composite Connector のグローバル要素の設定](/mulesoft/current/ja-jp/salesforce-composite-connector/2.15/_images/salesforce-composite-global-config.png)

Figure 3. Salesforce Composite Connector の再利用可能なグローバル要素を作成するために、\[General (一般)\] セクションを設定します。

### [](#2-つ目の-transform-message-コンポーネントを追加する-2)2 つ目の \[Transform Message\] コンポーネントを追加する

2 つ目の Transform Message コンポーネントは、​**\[ID\]**​ 項目と ​**\[Type (種別)\]**​ 項目の値を指定し、これらの値を ​**Pre query**​ 操作に渡します。コンポーネントを追加する手順は、次のとおりです。

1. 2 つ目の ​**\[Transform Message\]**​ コンポーネントを ​**\[Pre create\]**​ の右にドラッグします。
2. 次の名前-値ペアを入力します。
    
    ```dataweave
    %dw 2.0
    %output application/java
    ---
    {
       "Id": payload.Id,
       "Fields" : ["Id", "Name"],
       "Type": "Account"
    }
    ```

### [](#pre-query-操作を追加する)Pre Query 操作を追加する

Pre Query 操作により、照会するオブジェクトのメタデータが提供されます。​**Execute composite batch**​ 操作の下位要求が生成されます。操作を追加する手順は、次のとおりです。

1. Salesforce Composite の ​**Pre query**​ 操作を 2 つ目の ​**\[Transform Message\]**​ の右にドラッグします。
2. **\[Query (クエリ)\]**​ 項目に、以下を入力します。
    
    `Select Name from Account WHERE Name LIKE '%:name %'`

### [](#3-つ目の-transform-message-コンポーネントを追加する)3 つ目の \[Transform Message\] コンポーネントを追加する

3 つ目の Transform Message 操作は、​**Pre query**​ 操作の出力を ​**Execute composite batch**​ 操作に渡します。コンポーネントを追加する手順は、次のとおりです。

1. 3 つ目の ​**\[Transform Message\]**​ コンポーネントを ​**\[Pre query\]**​ の右にドラッグします。
2. 出力を ​`payload`​ に設定します。
    
    ```dataweave
    %dw 2.0
    %output application/java
    ---
    [
    payload
    ]
    ```

### [](#execute-composite-batch-操作を追加する)Execute Composite Batch 操作を追加する

Execute Composite Batch 操作により、Pre Create 操作と Pre Query 操作で作成された下位要求が実行されます。

操作を追加するには、Salesforce Composite の ​**\[Execute composite batch\]**​ 操作を 3 つ目の ​**\[Transform Message\]**​ の右にドラッグします。

### [](#4-つ目の-transform-message-コンポーネントを追加する)4 つ目の \[Transform Message\] コンポーネントを追加する

4 つ目の Transform Message 操作は、出力を JSON 形式に変換します。コンポーネントを追加する手順は、次のとおりです。

1. 4 つ目の ​**\[Transform Message\]**​ コンポーネントを ​**\[Execute composite batch\]**​ の右にドラッグします。
2. 出力を ​`application/json`​ に設定します。
    
    ```dataweave
    %dw 2.0
    %output application/json
    ---
    payload
    ```

### [](#pre-query-の例の-xml)Pre-Query の例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを XML エディターに貼り付けます。必要に応じて、環境に合わせて値を変更します。

```xml
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:salesforce-composite="http://www.mulesoft.org/schema/mule/salesforce-composite" 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/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-composite http://www.mulesoft.org/schema/mule/salesforce-composite/current/mule-salesforce-composite.xsd">
   <http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
      <http:listener-connection host="0.0.0.0" port="8081" />
   </http:listener-config>
   <salesforce-composite:composite-config name="Salesforce_Composite_Config" doc:name="Salesforce Composite Config" >
      <salesforce-composite:oauth-user-pass-connection consumerKey="${consumerKey}" consumerSecret="${consumerSecret}" username="${username}" password="${password}" securityToken="${securityToken}" />
   </salesforce-composite:composite-config>
   <flow name="composite-prequery-exampleFlow" >
      <http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/executeFlow"/>
      <ee:transform doc:name="Transform Message" >
         <ee:message >
            <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
   Name: "MyNewAccount"
}]]></ee:set-payload>
         </ee:message>
      </ee:transform>
      <salesforce-composite:pre-create type="Account" doc:name="Pre create" config-ref="Salesforce_Composite_Config">
      </salesforce-composite:pre-create>
      <ee:transform doc:name="Transform Message" >
         <ee:message >
            <ee:set-payload ><![CDATA[output application/java
---
{
   "Id": payload.Id,
   "Fields" : ["Id", "Name"],
   "Type": "Account"
}]]></ee:set-payload>
         </ee:message>
      </ee:transform>
      <salesforce-composite:pre-query doc:name="Pre query" config-ref="Salesforce_Composite_Config">
         <salesforce-composite:query >Select Name from Account WHERE Name LIKE '%:name %'
                    </salesforce-composite:query>
         <salesforce-composite:parameters ><![CDATA[#[output application/java
---
{
   "name" : "MyNewAccount"
}]]]></salesforce-composite:parameters>
      </salesforce-composite:pre-query>
      <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-composite:execute-composite-batch doc:name="Execute composite batch" config-ref="Salesforce_Composite_Config"/>
      <ee:transform doc:name="Transform Message" >
         <ee:message >
            <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
         </ee:message>
      </ee:transform>
   </flow>
</mule>
```

## [](#関連情報)関連情報

- [Salesforce Composite Connector リファレンス](https://docs.mulesoft.com/jp/salesforce-composite-connector/2.15/salesforce-composite-connector-reference)
- [MuleSoft ヘルプセンター](https://help.mulesoft.com)