Salesforce Marketing Cloud Connector 4.1 の例 - Mule 4

Salesforce Marketing Cloud Connector の Mule フローの例を示します。

始める前に

  • Java 8、11、または 17

  • Anypoint Studio 7.5 以降

  • Mule Runtime Engine (Mule) 4.3.0 以降

  • DataWeave

  • Salesforce Marketing Cloud の OAuth ログイン情報

接続の設定

接続を保護するには、接続項目の値を指定する必要があります。次の手順を実行します。

接続の設定ファイルを作成する

接続のプロパティが含まれる設定ファイルを作成します。

  1. /src/main/resources/​ フォルダー内に ​mule-app.properties​ という名前のファイルを作成します。

  2. mule-app.properties​ ファイルに、次のような接続の一連のプロパティを作成します。括弧で囲まれたテキスト (括弧を含む) を各自の設定の適切な値に置き換えます。

    config-with-oauth.clientId=<clientId used to initialize the connection>
    config-with-oauth.clientSecret=<clientSecret used to authenticate the user>
    config-with-oauth.soapEndpoint=<SOAP endpoint address>
    config-with-oauth.authEndpoint=<Authentication endpoint>

    これは、選択した接続設定によって異なる場合があります。

プロパティファイルの作成についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

接続のグローバル要素を設定する

接続のグローバル要素を設定します。

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

  2. [Mule Palette (Mule パレット)]​ ビューで、​[Search in Exchange (Exchange 内を検索)]​ をクリックして​「Salesforce Marketing Cloud」​と入力します。

  3. [Selected modules (選択したモジュール)]​ セクションに ​[Salesforce Marketing Cloud Connector]​ を追加し、​[Finish (完了)]​ をクリックします。

  4. [Global Elements (グローバル要素)]​ タブをクリックし、​[Create (作成)]​ をクリックします。

  5. [Connector Configuration (コネクタ設定)] > [Salesforce Marketing Cloud]​ を選択し、​[OK]​ をクリックします。

  6. 値を入力して、[Basic Authentication (基本認証)] または [OAuth Client Credentials (OAuth クライアントログイン情報)] のいずれかを設定します。

  7. [Test Connection (接続をテスト)]​ ボタンをクリックして、Salesforce Marketing Cloud API と接続されていることを確認します。ポップアップに成功メッセージが表示されます。

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

  9. [Global Element Configuration (グローバル要素設定)]​ で HTTPS リスナー設定を開きます。

  10. [TLS]​ タブをクリックし、[TLS Configuration (TLS 設定)] > [Edit inline (インライン編集)] を選択します。

  11. 生成されたキーストアの詳細を使用して ​[Key Store Configuration (キーストア設定)]​ を指定し、この設定で HTTPS を有効にします。

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

プロパティファイルのグローバル要素を設定する

mule-app.properties​ ファイルのグローバル要素を設定して、Mule がその場所を認識できるようにします。

  1. [Global Elements (グローバル要素)]​ タブをクリックし、​[Create (作成)]​ をクリックします。

  2. [Choose Global Type (グローバル種別の選択)]​ ダイアログで、​[Configuration properties (設定プロパティ)]​ を選択し、​[OK]​ をクリックします。

  3. [File (ファイル)]​ 項目に「​mule.app.properties​」と入力します。

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

リストの作成

この Mule フローでは、サブスクライバーを保存するためのリストを作成します。

[List type (リスト種別)] のデフォルト値は ​[Public (公開)]​ で、すべてのサブスクライバーにリストが表示されるようになります。リストの作成後、他の操作で使用するリスト ID をメモします。

この例では、次の操作を使用します。

  • HTTP Listener
    HTTP 要求からデータを受け入れる

  • Logger
    HTTP Listener​ からの HTTP 応答を表示します。

  • Transform Message
    データを Java で出力します。

    %dw 2.0
    output application/java
    ---
    [{
    
    	ListClassification: payload.listClassification,
    	ListName: payload.listName,
    	"Type": payload.listType
    }]
  • Create entities
    Marketing Cloud API Web サーバーに新しいオブジェクトを作成します。

    次の値を入力します。

    項目 Value (値)

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

    List

    Connector Configuration (コネクタ設定)

    Salesforce_Marketing_Cloud_Sfdc_marketing_cloud_config

    Api objects (API オブジェクト)

    payload

  • Transform Message
    データを JSON で出力します。

    output application/json
    ---
    payload
Create List 操作の Studio フロー

この例の XML

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

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

<mule xmlns:sfdc-marketing-cloud="http://www.mulesoft.org/schema/mule/sfdc-marketing-cloud"
      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/core http://www.mulesoft.org/schema/mule/core/current/mule.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/sfdc-marketing-cloud http://www.mulesoft.org/schema/mule/sfdc-marketing-cloud/current/mule-sfdc-marketing-cloud.xsd">

	<configuration-properties file="mule-app.properties" />
	<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="2d500821-46be-4da2-a983-832ca1d829de" >
		<http:listener-connection host="localhost" port="8081" />
	</http:listener-config>

	<sfdc-marketing-cloud:config name="Salesforce_Marketing_Cloud_Sfdc_marketing_cloud_config" doc:name="Salesforce Marketing Cloud Sfdc marketing cloud config" doc:id="8c951adc-306a-4212-a33f-4be4b19a0076" >
		<sfdc-marketing-cloud:oauth-client-credentials-connection serviceUrl="${config-with-oauth-v2.serviceUrl}">
			<sfdc-marketing-cloud:oauth-client-credentials clientId="${config-with-oauth-v2.clientId}"
														   clientSecret="${config-with-oauth-v2.clientSecret}"
														   tokenUrl="${config-with-oauth-v2.tokenUrl}" />
		</sfdc-marketing-cloud:oauth-client-credentials-connection>
	</sfdc-marketing-cloud:config>

    <flow name="salesforce-marketing-cloud-oauth-demo-create-list-flow">
        <http:listener path="/create-list" doc:name="HTTP" config-ref="HTTP_Listener_config"/>
        <logger message="#[payload]" level="INFO" doc:name="Logger"/>
        <ee:transform doc:name="Transform Message" doc:id="fab54a8d-4f2d-45cf-9496-9d407bf5837f" >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
[{

	ListClassification: payload.listClassification,
	ListName: payload.listName,
	"Type": payload.listType
}]]]></ee:set-payload>
			</ee:message>
		</ee:transform>
        <sfdc-marketing-cloud:create config-ref="Salesforce_Marketing_Cloud_Sfdc_marketing_cloud_config" objectType="List" doc:name="Salesforce Marketing Cloud"/>
        <ee:transform doc:name="Transform Message" doc:id="a61ae2f3-0821-4884-9a4c-2306071c7ec8" >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
			</ee:message>
		</ee:transform>
        <logger message="#[payload]" level="INFO" doc:name="Logger"/>
    </flow>
</mule>

リストの取得

この Mule フローでは、他の操作で使用するリストの ID を取得します。

この例では、次の操作を使用します。

  • HTTP Listener
    HTTP 要求からデータを受け入れる

  • Logger
    HTTP Listener​ からの HTTP 応答を表示します。

  • Transform Message
    データを Java で出力します。

    %dw 2.0
    output application/java
    ---
    {
    	query: "SELECT ID FROM List WHERE ListName ='" ++ payload.listName ++ "'"
    }
  • Retrieve entities
    SQL クエリを使用して Salesforce Marketing Cloud API Web サーバーからオブジェクトを取得します。

    次の値を入力します。

    項目 Value (値)

    Connector Configuration (コネクタ設定)

    Salesforce_Marketing_Cloud_Sfdc_marketing_cloud_config

    Query (クエリ)

    #[payload.query]

  • Transform Message
    データを JSON 形式で出力します。

    %dw 2.0
    output application/json
    ---
    payload
Retrieve List 操作の Studio フロー

この例の XML

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

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

<mule xmlns:sfdc-marketing-cloud="http://www.mulesoft.org/schema/mule/sfdc-marketing-cloud"
      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/core http://www.mulesoft.org/schema/mule/core/current/mule.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/sfdc-marketing-cloud http://www.mulesoft.org/schema/mule/sfdc-marketing-cloud/current/mule-sfdc-marketing-cloud.xsd">

	<configuration-properties file="mule-app.properties" />
	<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="651f3647-d4c9-4536-8d6b-bee43c422625" >
		<http:listener-connection host="localhost" port="8081" />
	</http:listener-config>

	<sfdc-marketing-cloud:config name="Salesforce_Marketing_Cloud_Sfdc_marketing_cloud_config" doc:name="Salesforce Marketing Cloud Sfdc marketing cloud config" doc:id="7ef81352-ca1d-4134-bccb-b211a1951a60" >
		<sfdc-marketing-cloud:oauth-client-credentials-connection serviceUrl="${config-with-oauth-v2.serviceUrl}">
			<sfdc-marketing-cloud:oauth-client-credentials clientId="${config-with-oauth-v2.clientId}"
														   clientSecret="${config-with-oauth-v2.clientSecret}"
														   tokenUrl="${config-with-oauth-v2.tokenUrl}" />
		</sfdc-marketing-cloud:oauth-client-credentials-connection>
	</sfdc-marketing-cloud:config>

    <flow name="salesforce-marketing-cloud-oauth-demo-retrieve-list-flow">
        <http:listener path="/retrieve-list" doc:name="HTTP" config-ref="HTTP_Listener_config"/>
        <logger message="#[payload]" level="INFO" doc:name="Logger"/>
        <ee:transform doc:name="Transform Message" doc:id="fe31d1a8-d189-4fbd-b96f-99c2eac092e1" >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
	query: "SELECT ID FROM List WHERE ListName ='" ++ payload.listName ++ "'"
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
        <sfdc-marketing-cloud:retrieve doc:name="Salesforce Marketing Cloud" config-ref="Salesforce_Marketing_Cloud_Sfdc_marketing_cloud_config">
			<sfdc-marketing-cloud:query>#[payload.query]</sfdc-marketing-cloud:query>
		</sfdc-marketing-cloud:retrieve>
        <ee:transform doc:name="Transform Message" doc:id="d05834f2-3d96-4e95-bd3b-48057d4ca34e" >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
			</ee:message>
		</ee:transform>
        <logger message="#[payload]" level="INFO" doc:name="Logger"/>
    </flow>
</mule>