Salesforce Connector の Mule フローの例を示します。
データの受け入れと変換
この例は、新規 Salesforce 取引先の作成と新規取引先の照会を行うように Salesforce Connector を設定する方法と、File Connector を使用して新規取引先データをファイルに書き込む方法を示しています。この例には次の 3 つのフローが含まれます。
-
最初のフロー: 新規取引先のデータを提供するために使用する HTML 入力フォームのテンプレートを設定します。
-
2 番目のフロー: HTML 入力フォームの情報に基づいて新規 Salesforce 取引先を作成します。
-
3 番目のフロー: 新規取引先を名前で照会し、新規取引先データを CSV ファイルに書き込みます。
最初のフローを設定する
新規取引先の作成に使用されるデータを提供する HTML テンプレートを設定する最初のフローを設定します。最初のフローを作成するには、Listener コンポーネントと Parse Template コンポーネントを設定する必要があります。
HTTP リスナーを設定する
/account パスへのコールが行われたときに Mule フローを開始するように Listener コンポーネントを設定します。
-
Studio で新しい Mule プロジェクトを作成します。
-
[Mule Palette (Mule パレット)] ビューから、[HTTP] を選択して [Listener] コンポーネントをキャンバスにドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
デフォルトを受け入れます。
-
プロパティウィンドウで、[Path (パス)] 項目値を
/account に設定します。
Parse Template コンポーネントを追加する
HTML フォーム (form.html) のテンプレートを作成する Parse Template コンポーネントを追加します。これはメインリソースフォルダーに配置され、新規取引先を作成するための情報を伝達するために使用されます。
-
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Parse Template] コンポーネントを [Listener] の右側にドラッグします。
-
プロパティウィンドウで、次の項目を設定します。
項目 Value (値) Display Name (表示名)
コンポーネントの名前 (
Parse Template など)。Location (場所)
form.html次の画像は、プロパティウィンドウでの Parse Template 設定の例を示しています。
2 番目のフローを設定する
HTTP 入力フォームのデータに基づいて新規 Salesforce 取引先を作成する 2 番目のフローを設定します。2 番目のフローを作成するには、Listener コンポーネント、Transform Message コンポーネント、Create 操作、2 つ目の Transform Message コンポーネントを設定する必要があります。
HTTP リスナーを設定する
/createAccount パスへのコールが行われたときに Mule フローを開始するように Listener コンポーネントを設定します。
-
[Mule Palette (Mule パレット)] ビューから、[HTTP] を選択して [Listener] コンポーネントをキャンバスにドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
デフォルトを受け入れます。
-
プロパティウィンドウで、[Path (パス)] 項目値を
/createAccount に設定します。
最初の [Transform Message] コンポーネントを追加する
HTTP 入力フォームの値を Java 形式に変換して Create 操作への入力として使用できるようにする最初の Transform Message コンポーネントを追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントを [Listener] の右側にドラッグします。
-
プロパティウィンドウで、[Output (出力)] セクションの括弧を次の DataWeave コードで上書きします。
%dw 2.0 output application/java --- [{ Name: payload.Name, AccountNumber: payload.AccountNumber, BillingCity: payload.BillingCity }]
Create 操作を追加する
Transform Message コンポーネントにより渡された項目値を使用して新規 Salesforce アカウントを作成する Create 操作を追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Salesforce] を選択して [Create] 操作を [Transform Message] の右側にドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
接続に応じてグローバル要素を設定します。次に例を示します。
項目 Value (値) Username (ユーザー名)
${salesforce.username}Password (パスワード)
${salesforce.password}Security (セキュリティ)
${salesforce.securityToken}Authorization URL (認証 URL)
https://login.salesforce.com/services/Soap/u/53.0次の画像は、グローバル要素の Create 設定の例を示しています。
-
プロパティウィンドウで、次の項目を設定します。
項目 Value (値) Display Name (表示名)
コネクタ操作の名前。
Connector configuration (コネクタ設定)
作成したばかりのグローバル設定。
Type (型)
Account[Type (型)] には変数を正常に渡すことができますが、Runtime がその変数の値を適切に解決できないと入力メタデータを表示する際に問題が発生する場合もあります。
Records (レコード)
payload次の画像は、プロパティウィンドウでの Create 設定の例を示しています。
2 つ目の [Transform Message] コンポーネントを追加する
項目値を JSON 形式に変換して File Connector で使用できるようにする 2 つ目の Transform Message コンポーネントを追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントを [Create] の右側にドラッグします。
-
プロパティウィンドウで、[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 ソースを設定します。
-
[Mule Palette (Mule パレット)] ビューから、[Salesforce] を選択して [On New Object] ソースをキャンバスにドラッグします。
-
プロパティウィンドウで、次の項目を設定します。
項目 Value (値) Display Name (表示名)
コネクタ操作の名前。
Connector configuration (コネクタ設定)
作成したばかりのグローバル設定。
Type (型)
Account次の画像は、プロパティウィンドウでの On New Object 設定の例を示しています。
Query Result List 操作を追加する
結果 ID のリストを返す Query result list 操作を追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Salesforce] を選択して [Query result list] 操作を [On New Object] の右側にドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
接続に応じてグローバル要素を設定します。次に例を示します。
項目 Value (値) Username (ユーザー名)
${salesforce.username}Password (パスワード)
${salesforce.password}Security (セキュリティ)
${salesforce.securityToken}Authorization URL (認証 URL)
https://login.salesforce.com/services/Soap/u/53.0次の画像は、グローバル要素の Query result list 設定の例を示しています。
-
プロパティウィンドウで、次の項目を設定します。
項目 Value (値) Display Name (表示名)
コネクタ操作の名前。
Connector configuration (コネクタ設定)
作成したばかりのグローバル設定。
Batch info (バッチ情報)
payload次の画像は、プロパティウィンドウでの Query result list 設定の例を示しています。
Query Result Stream by Id 操作を追加する
最終クエリ結果を取得する Query result stream by id 操作を追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Salesforce] を選択して [Query result stream by id] 操作を [Query result list] の右側にドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
接続に応じてグローバル要素を設定します。次に例を示します。
項目 Value (値) 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 設定の例を示しています。
-
プロパティウィンドウで、次の項目を設定します。
項目 Value (値) Display Name (表示名)
コネクタ操作の名前。
Connector configuration (コネクタ設定)
作成したばかりのグローバル設定。
Batch info (バッチ情報)
payload次の画像は、プロパティウィンドウでの Query result stream by id 設定の例を示しています。
[Transform Message] コンポーネントを追加する
項目値を JSON 形式に変換して File Connector で使用できるようにする Transform Message コンポーネントを追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントを [Query result stream by id] の右側にドラッグします。
-
プロパティウィンドウで、[Output (出力)] セクションの括弧を次の DataWeave コードで上書きします。
%dw 2.0 output application/json --- payload map { AccountNumber:$.AccountNumber, BillingAddress:$.BillingAddress, Id:$.Id, Name:$.Name }
Write 操作を追加する
新規取引先データを CSV ファイルに書き込む Write 操作を追加します。
-
[Mule Palette (Mule パレット)] ビューから、[File (ファイル)] を選択して [Write] 操作を [Transform Message] の右側にドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
接続に応じてグローバル要素を設定します。次に例を示します。
項目 Value (値) Working Directory (作業ディレクトリ)
[Connection (接続)] が選択されている場合、このコネクタで使用するすべての相対パスのルートとみなされるディレクトリ。指定しない場合、デフォルトの
user.home システムプロパティの値になります。このシステムプロパティが設定されていない場合、コネクタは初期化に失敗します。次の画像は、グローバル要素の Write 設定の例を示しています。
-
プロパティウィンドウで、次の項目を設定します。
項目 Value (値) Display Name (表示名)
コネクタ操作の名前。
Connector configuration (コネクタ設定)
作成したばかりのグローバル設定。
Path (パス)
/accountContent (コンテンツ)
payload次の画像は、プロパティウィンドウでの 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 コンポーネントを設定します。
-
Studio で新しい Mule プロジェクトを作成します。
-
[Mule Palette (Mule パレット)] ビューから、[HTTP] を選択して [Listener] コンポーネントをキャンバスにドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
デフォルトを受け入れます。
-
プロパティウィンドウで、[Path (パス)] 項目値を
/ に設定します。
最初の [Transform Message] コンポーネントを追加する
HTTP 入力フォームの値を Java 形式に変換して Upsert 操作への入力として使用できるようにする最初の Transform Message コンポーネントを追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントを [Listener] の右側にドラッグします。
-
プロパティウィンドウで、[Output (出力)] セクションの括弧を次の DataWeave コードで上書きします。
%dw 2.0 output application/java --- [{ Name: "NewPlaneComponent", Plane__r: { "type": "Plane__c", "Name": "Cobra" } }]
Upsert 操作を追加する
親-子リレーション内にある Salesforce オブジェクトを作成または更新する Upsert 操作を追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Salesforce] を選択して [Upsert] 操作を [Transform Message] の右側にドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
接続に応じてグローバル要素を設定します。次に例を示します。
項目 Value (値) Username (ユーザー名)
${salesforce.username}Password (パスワード)
${salesforce.password}Security (セキュリティ)
${salesforce.securityToken}Authorization URL (認証 URL)
https://login.salesforce.com/services/Soap/u/53.0次の画像は、グローバル要素の Upsert 設定の例を示しています。
-
プロパティウィンドウで、次の項目を設定します。
項目 Value (値) Display Name (表示名)
コネクタ操作の名前。
Connector configuration (コネクタ設定)
作成したばかりのグローバル設定。
Object type (オブジェクト種別)
Component_cExternal id field name (外部 ID 項目名)
IdRecords (レコード)
payload次の画像は、プロパティウィンドウでの Upsert 設定の例を示しています。
2 つ目の [Transform Message] コンポーネントを追加する
値を Java 形式から JSON 形式に変換する 2 つ目の Transform Message コンポーネントを追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントを [Upsert] の右側にドラッグします。
-
プロパティウィンドウで、[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 コンポーネントを設定します。
-
Studio で新しい Mule プロジェクトを作成します。
-
[Mule Palette (Mule パレット)] ビューから、[HTTP] を選択して [Listener] コンポーネントをキャンバスにドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
デフォルトを受け入れます。
-
プロパティウィンドウで、[Path (パス)] 項目値を
/ に設定します。
最初の [Transform Message] コンポーネントを追加する
HTTP 入力フォームの値を Java 形式に変換して Delete 操作への入力として使用できるようにする最初の Transform Message コンポーネントを追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントを [Listener] の右側にドラッグします。
-
プロパティウィンドウで、[Output (出力)] セクションの括弧を次の DataWeave コードで上書きします。
%dw 2.0 output application/java --- [payload.Id]
Delete 操作を追加する
Salesforce 取引先を削除する Delete 操作を追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Salesforce] を選択して [Delete] 操作を [Transform Message] の右側にドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
接続に応じてグローバル要素を設定します。次に例を示します。
項目 Value (値) Username (ユーザー名)
${salesforce.username}Password (パスワード)
${salesforce.password}Security (セキュリティ)
${salesforce.securityToken}Authorization URL (認証 URL)
https://login.salesforce.com/services/Soap/u/53.0次の画像は、グローバル要素の Delete 設定の例を示しています。
-
プロパティウィンドウで、次の項目を設定します。
項目 Value (値) Display Name (表示名)
コネクタ操作の名前。
Connector configuration (コネクタ設定)
作成したばかりのグローバル設定。
Records to Delete Ids (削除するレコードの ID)
payload次の画像は、プロパティウィンドウでの Delete 設定の例を示しています。
2 つ目の [Transform Message] コンポーネントを追加する
値を Java 形式から JSON 形式に変換する 2 つ目の Transform Message コンポーネントを追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントを [Delete] の右側にドラッグします。
-
プロパティウィンドウで、[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 コンポーネントを設定します。
-
Studio で新しい Mule プロジェクトを作成します。
-
[Mule Palette (Mule パレット)] ビューから、[HTTP] を選択して [Listener] コンポーネントをキャンバスにドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
デフォルトを受け入れます。
-
プロパティウィンドウで、[Path (パス)] 項目値を
/findDuplicates に設定します。
最初の [Transform Message] コンポーネントを追加する
HTTP 入力フォームの値を Java 形式に変換して Delete 操作への入力として使用できるようにする最初の Transform Message コンポーネントを追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントを [Listener] の右側にドラッグします。
-
プロパティウィンドウで、[Output (出力)] セクションの括弧を次の DataWeave コードで上書きします。
%dw 2.0 output application/java --- [ payload ]
Find Duplicates 操作を追加する
重複する Salesforce 取引先を検索する Find duplicates 操作を追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Salesforce] を選択して [Find duplicates] 操作を [Transform Message] の右側にドラッグします。
-
プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
-
接続に応じてグローバル要素を設定します。次に例を示します。
項目 Value (値) Username (ユーザー名)
${salesforce.username}Password (パスワード)
${salesforce.password}Security (セキュリティ)
${salesforce.securityToken}Authorization URL (認証 URL)
https://login.salesforce.com/services/Soap/u/53.0次の画像は、グローバル要素の Find duplicates 設定の例を示しています。
-
プロパティウィンドウで、次の項目を設定します。
項目 Value (値) Display Name (表示名)
コネクタ操作の名前。
Connector configuration (コネクタ設定)
作成したばかりのグローバル設定。
Type (型)
AccountCriteria (条件)
payload次の画像は、プロパティウィンドウでの Find duplicates 設定の例を示しています。
2 つ目の [Transform Message] コンポーネントを追加する
値を Java 形式から JSON 形式に変換する 2 つ目の Transform Message コンポーネントを追加します。
-
[Mule Palette (Mule パレット)] ビューから、[Core (コア)] を選択して [Transform Message] コンポーネントを [Find duplicates] の右側にドラッグします。
-
プロパティウィンドウで、[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>