Salesforce Composite コネクタ

Select

Salesforce Composite 用 Anypoint コネクタでは、Salesforce Batch API および sObject Tree API を操作できます。このコネクタでは、下位要求を準備し、1 つのバッチで実行して、結果を解析するための便利なメソッドが公開されています。また、バッチ操作とは別の操作によって createSobjectTree という SObject ツリーを作成することもできます。このコネクタでは、下位要求を準備し、応答を解析するための DataSense が提供されています。DataSense は、実行用、および sObject ツリーの作成用にも提供されます。

前提条件

このドキュメントは、読者が Mule、Anypoint コネクタ、Anypoint Studio、Mule の概念、Mule フローの要素、グローバル要素に精通していることを前提としています。

対象リソースへの接続をテストするには、ログイン情報が必要です。

Maven で使用する場合は、Anypoint Exchange で [Dependency Snippets (連動関係スニペット)] をクリックして、pom.xml の連動関係情報を確認してください。

このコネクタの新機能

このコネクタは、Mule 4 で初めてリリースされます。

Design Center での接続方法

  1. HTTP リスナトリガやスケジューラトリガなどのトリガをクリックします。

  2. コネクタ用に省略可能なグローバル要素を作成するには、[Reusable Configurations (再利用可能な設定)] をクリックします。使用できるのは、OAuth ユーザ名とパスワード認証のみです。

    OAuth ユーザ名とパスワード認証を選択する
  3. プラス記号を選択して、コンポーネントを追加します。

  4. コンポーネントとしてコネクタを選択します。

    コンポーネントとしてコネクタ
  5. Create SObject Tree 操作用に次の項目を設定します。

    • SObject Root Type (sObject ルート種別) - 作成するツリーのルート種別。

    • SObject Tree (sObject ツリー) - 作成するツリーの構造全体。

      Create SObject Tree 操作

OAuth ユーザ名とパスワード設定の必須パラメータ

  • Consumer Key (コンシューマキー) - Salesforce 接続アプリケーションのコンシューマキー。

  • Consumer Secret (コンシューマシークレット) - Salesforce にアクセスするためのコネクタのコンシューマシークレット。

  • Username (ユーザ名) - Salesforce ユーザ名。

  • Password (パスワード) - 対応するパスワード。

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

    デザインセンター基本認証

Anypoint Studio 7 で接続する方法

このコネクタを Anypoint Studio で使用するには、まず Exchange からダウンロードして必要に応じて設定します。

Studio にこのコネクタをインストールする方法

  1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。

  2. Anypoint Exchange で [Login (ログイン)] をクリックします。

  3. このコネクタを検索して [Install (インストール)] をクリックします。

  4. 画面の指示に従ってこのコネクタをインストールします。

Studio の更新がある場合、右下隅にメッセージが表示されます。メッセージをクリックすると、更新をインストールできます。

Studio に設定する方法

  1. コネクタをドラッグして Studio キャンバスにドロップします。

  2. コネクタのグローバル要素を作成するには、次の項目を設定します。

    • OAuth ユーザ名とパスワード認証

      • Consumer Key (コンシューマキー) - Salesforce 接続アプリケーションのコンシューマキー。

      • Consumer Secret (コンシューマシークレット) - Salesforce にアクセスするためのコネクタのコンシューマシークレット。

      • Username (ユーザ名) - Salesforce ユーザ名。

      • Password (パスワード) - 対応するパスワード。

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

        Studio 基本認証

ユースケース: Studio

  • Listener (HTTP) (リスナ (HTTP)) - HTTP 要求からデータを受け入れます。

  • Transform message (メッセージをトランスフォーム) - HTTP 入力を適宜トランスフォームします。

  • Salesforce Composite Connector (Salesforce Composite コネクタ) - Salesforce に接続し、Create SObject Tree 操作を実行します。

  • Transform message (メッセージをトランスフォーム) - Create SObject Tree 操作の結果を JSON 形式で出力します。

    Studio のユースケース

ユースケース: XML

次の XML コードを Anypoint Studio に貼り付けて、前のセクションで説明したフローを試してください。

<?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>

ユースケース: HTTP 入力

以下は、このフローの HTTP 入力の例です。

{
   "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":"9876543210",
         "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"
      }
   ]
}

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub