この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

カスタムチャネルを使用したプラットフォームイベントの 1 つのストリームへのグループ化

カスタムチャネルを使用して、Salesforce 組織で定義された 1 つ以上のプラットフォームイベントに対応するイベントメッセージの 1 つのストリームを受信できます。たとえば、さまざまな地域の注文に対応するプラットフォームイベントを定義した場合、1 つのクライアントがそのすべてのイベントに登録して処理することができます。カスタムチャネルは CometD と Pub/Sub API クライアントでのみサポートされています。カスタムチャネルに検索条件 (ベータ) を追加することもできます。1 つのみのクライアントを使用してすべてのイベントに登録し、検索条件を使用することによって、登録が最適化されます。

サポートされるイベントの種別

カスタムチャネルは定義した大規模カスタムプラットフォームイベントでサポートされます。従来の標準規模カスタムプラットフォームイベントや標準プラットフォームイベント (リアルタイムイベント監視イベントなど) ではサポートされません。

API の PlatformEventChannel および PlatformEventChannelMember オブジェクト

カスタムチャネルを作成し、そこに含まれるプラットフォームイベントを Tooling API とメタデータ API で指定します。

PlatformEventChannel はカスタムチャネルを表します。ChannelType 項目は、カスタムチャネルに入れることができるメンバーを示します。ChannelType の値が event の場合、チャネルには、チャネルメンバーによってプラットフォームイベントを含めることが可能なことを意味します。

カスタムチャネルには、1 つのイベント商品のイベントのみを含めることができます。1 つのチャネルで、異なるイベント商品のイベントを混在させることはできません。たとえば、プラットフォームイベントと変更データキャプチャイベントを同じチャネルに追加することはできません。

PlatformEventChannelMember は、チャネルのメンバーを表します。チャネルメンバーは、SelectedEntity 項目にカスタムプラットフォームイベントを含み、EventChannel 項目を介してチャネルと関連付けられます。

  • チャネルの作成後、そのチャネルの ChannelType 項目の値を変更することはできません。
  • PlatformEventChannel を削除することによってチャネルを削除すると、関連するすべてのメンバー (PlatformEventChannelMember エンティティ) も削除されます。

メモ

例のダイアグラム

次のダイアグラムは、カスタムチャネル Order_Channel__chn およびそのメンバーのオブジェクトリレーションシップと定義を示しています。このチャネルは、北米、EMEA、APAC リージョンの注文イベントを受信するように設定されています。カスタムイベントは、Order_NorthAmer__e、Order_EMEA__e、Order_APAC__e の各リージョンに対して定義されています。これらのプラットフォームイベントは、PlatformEventChannelMember オブジェクトによってチャネルに追加されています。注文管理アプリケーションは、カスタムチャネル Order_Channel__chn に登録でき、3 つのプラットフォームイベントのメッセージを受信できます。

地域ごとに 1 つ、合わせて 3 つのプラットフォームを含むカスタム注文チャネル

カスタムチャネルへの登録

CometD を使用してカスタムチャネルに登録するとき、/event/ChannelName__chn の形式でチャネル名を指定します。たとえば、/event/Order_Channel__chn のように指定します。サブスクライバーは、チャネルに含まれるすべてのイベントのイベントメッセージを受信します。CometD クライアントの場合、各イベントメッセージには、EventApiName 項目があり、イベントの種別が含まれます。たとえば、次のイベントメッセージでは EventApiName は Order_EMEA__e で、これが Order_EMEA__e イベントであることを示しています。

1{
2  "schema": "e8jMOnID4xDThlaPBMx5gg",
3  "payload": {
4    "City__c": "London",
5    "CreatedById": "005RM000002Qu16YAC",
6    "Amount__c": 20,
7    "CreatedDate": "2022-03-29T13:45:19.230Z",
8    "Order_Number__c": "2"
9  },
10  "event": {
11    "EventApiName": "Order_EMEA__e",
12    "EventUuid": "218544ad-0472-4315-970f-8825a2802de6",
13    "replayId": 10306
14  }
15}

API バージョン 55.0 以降のストリーミング API エンドポイントを使用する CometD クライアントでは、受信したイベントメッセージに EventApiName 項目が表示されます。Apex トリガー、フロー、Pub/Sub API などの他のサブスクライバーの場合、この項目はイベントメッセージに含まれません。変更データキャプチャイベントやカスタムチャネルをサポートしていないイベントでも含まれません。さらに、EventApiName 項目は、REST eventSchema リソースまたは記述用の API コールによって返されるイベントスキーマにも含まれていません。Pub/Sub API で受信したイベントの種別を判別するには、受信したイベントに含まれるスキーマ ID を使用して、GetSchema RPC メソッドによりイベントスキーマを取得します。スキーマ名は、応答の schema_json の項目にあり、イベントの種類を指定します。詳細は、『Pub/Sub API』開発者ガイド「GetSchema RPC Method (GetSchema RPC メソッド)」を参照してください。

カスタムチャネルの割り当て

カスタムチャネルは、Salesforce 組織のエディションに関係なく最大 100 個を作成できます。Performance Edition、Unlimited Edition、Enterprise Edition では、カスタムチャネルのチャネルメンバーに最大 50 件の個別のプラットフォームイベントを追加できます。API アドオンがある Developer Edition と Professional Edition では、この割り当ては 5 件の個別のプラットフォームイベントです。同じプラットフォームイベントが複数のチャネルのメンバーである場合、割り当てに対して 1 回反映されます。この割り当ては、変更データキャプチャチャネルの割り当てとは別の割り当てです。