Salesforce Pub/Sub Connector 1.0 の例

Salesforce Pub/Sub Connector の Mule フローの例を示します。

始める前に

これらの例では以下が必要です。

  • Java 8、11、または 17

  • Anypoint Studio 7.5 以降

  • Mule Runtime Engine (Mule) 4.3.0 以降

  • DataWeave

接続の設定

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

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

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

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

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

    m4-config.username=<username within Salesforce Pub/Sub system>
    m4-config.password=<password for the username within Salesforce Pub/Sub system>
    m4-config.securityToken=<security token within Salesforce Pub/Sub system>
    m4-config.url=<endpoint representing your development environment>

    使用するプロパティは、選択した接続設定によって異なる場合があります。

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

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

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

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

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

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

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

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

  6. 値を入力して、[Basic Authentication (基本認証)]、[OAuth v2.0]、[OAuth JWT]、[OAuth Username Password (OAuth ユーザー名/パスワード)]、[OAuth SAML] のいずれかを設定します。

  7. [Test Connection (接続をテスト)]​ ボタンをクリックして、Salesforce Pub/Sub 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 フローは、イベントをパブリッシュし、以下の操作を使用します。

  • HTTP Listener
    HTTP 要求からデータを受け入れます。

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

  • Publish event
    イベントの特定のリストを指定されたイベントトピックにパブリッシュします。大規模プラットフォームイベント (リアルタイムイベントモニタリングイベントを含む) と変更データキャプチャイベントのみが許可されます。

    次の値を入力します。

    項目

    Topic (トピック)

    メッセージのパブリッシュに使用されるトピックの名前 (​/event/gRPCMunitTestDoNotDelete__e​)

    Job id (ジョブ ID)

    payload

Publish イベント操作の Studio フロー

この例の XML

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

チャネルのサブスクライブ

この例の Mule フローはチャネルにサブスクライブし、以下の操作を使用します。

  • Subscribe channel listener
    ストリーミングチャネルをサブスクライブします。このソースでは、サブスクライブ後に発生した新規イベントについてチャネル関連の通知設定が提供されます。

    チャネルのサブスクリプションを作成する前に、チャネルを Salesforce にパブリッシュする必要があります。

    次の値を入力します。

    項目

    Channel name (チャネル名)

    サブスクライブするストリーミングチャネルの名前 (​/event/gRPCMunitTestDoNotDelete__e​)

    Replay option (再生オプション)

    いずれかの特定の実装 (​[Earliest (最古)]​ など)。​[Replay option (再生オプション)]​ の ​[Replay id from object store (オブジェクトストアの再生 ID)]​ を使用する方法についての詳細は、​「オブジェクトストアの再生 ID を保存する」​を参照してください。

    Batch events size (バッチイベントサイズ)

    サーバーバッチに含まれるイベントの総数。値が小さいと、メモリフットプリントが小さくなり、サーバーコールが増えます。値が大きいと、メモリフットプリントが大きくなり、API コールが減ります。フローで既存のイベントをコンシュームすると、コネクタによってイベントの新しいバッチが要求されます (例: 1000​)。

  • Logger
    Subscribe channel listener​ ソースからの HTTP 応答を表示します。

Subscribe channel listener ソースの Studio フロー

この例の XML

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

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

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	  xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:salesforce-pub-sub="http://www.mulesoft.org/schema/mule/salesforce-pub-sub" 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/salesforce-pub-sub http://www.mulesoft.org/schema/mule/salesforce-pub-sub/current/mule-salesforce-pub-sub.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">

	<configuration-properties file="mule-app.properties"/>

	<salesforce-pub-sub:pubsub-config name="Salesforce_PubSub_Config" >
		<salesforce-pub-sub:basic-connection username="${m4-config.username}" password="${m4-config.password}" securityToken="${m4-config.securityToken}" url="${m4-config.url}"/>
	</salesforce-pub-sub:pubsub-config>

	<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="3805c5f1-0f01-476a-a619-a03f34dadfdd" >
		<http:listener-connection host="0.0.0.0" port="8081" />
	</http:listener-config>

	<flow name="mule-salesforce-pubsub-connector-subscribe-channel-demo" doc:id="4faf2bf8-e2af-43bc-bba8-d336761800dd" >
		<salesforce-pub-sub:subscribe-channel-listener channelName="/event/gRPCMunitTestDoNotDelete__e" config-ref="Salesforce_PubSub_Config" eventBatchSize="1000">
			<salesforce-pub-sub:replay-option >
				<salesforce-pub-sub:earliest />
			</salesforce-pub-sub:replay-option>
		</salesforce-pub-sub:subscribe-channel-listener>
		<logger level="INFO" doc:name="Logger" doc:id="21652e14-de84-4752-a9b9-871dc346befb" message="#[payload]"/>
	</flow>
</mule>
xml