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

チャネルへの登録

カスタムチャネルとそのメンバーを作成したら、CometD クライアントを使用してチャネルへ登録して、イベントメッセージを受信します。カスタムチャネルをサポートしているのは CometD クライアントのみです。Apex トリガー、フロー、プロセスなど他のサブスクライバーでは、カスタムチャネルはサポートされていません。
  1. EMP コネクタの設定については、「Java クライアントの例」の手順を参照してください。チャネル引数には、作成したカスタムチャネル /event/Order_Channel__chn を指定します。チャネル名は、/event/ChannelName__chn の形式で指定します。

    EventApiName 項目を受信するには、必ず API バージョン 55.0 以降のストリーミング API エンドポイントを使用して登録してください。EMP コネクタの GitHub リポジトリ「API Version in the Streaming API Endpoint (Streaming API エンドポイントの API バージョン)」を参照してください。

    メモ

  2. カスタムチャネルへ登録したら、Order_NorthAmer__e イベントと Order_EMEA__e イベントの両方のイベントメッセージを Apex を使って開発者コンソールで公開します。
    1. Salesforce Classic では、あなたの名前 | [開発者コンソール] をクリックします。
    2. Lightning Experience で、クイックアクセスメニューをクリックし、[開発者コンソール] を選択します。
    3. [Debug (デバッグ)] | [Open Execute Anonymous Window (実行匿名ウィンドウを開く)] を選択します。
    4. 新しいウィンドウで、内容を次の Apex コードスニペットに置き換え、[Execute (実行)] をクリックします。
      1// List to hold event objects to be published. 
      2List<SObject> eventList = new List<SObject>(); 
      3// Create event objects. 
      4Order_NorthAmer__e event1 = new Order_NorthAmer__e(
      5    Order_Number__c='1', City__c='Los Angeles', Amount__c=35); 
      6Order_EMEA__e event2 = new Order_EMEA__e(
      7    Order_Number__c='2', City__c='London', Amount__c=20); 
      8// Add event objects to the list. 
      9eventList.add(event1); 
      10eventList.add(event2); 
      11// Call method to publish events. 
      12List<Database.SaveResult> results = EventBus.publish(eventList); 
      13// Inspect publishing result for each event 
      14for (Database.SaveResult sr : results) { 
      15    if (sr.isSuccess()) { 
      16        System.debug('Successfully published event.'); 
      17    } 
      18    else { 
      19        for(Database.Error err : sr.getErrors()) { 
      20                 System.debug('Error returned: ' + err.getStatusCode() + 
      21                              ' - ' +  err.getMessage()); 
      22        } 
      23    } 
      24}

      変数 eventList が、イベント種別 (Order_NorthAmer__e など) ではなく���SObject 種別で宣言されていることに注意してください。SObject を使用することで、このリスト変数では、Order_NorthAmer__e や Order_EMEA__e などの任意のイベント種別を保持できます。

      メモ

    Order_Channel__chn は Order_NorthAmer__e と Order_EMEA__e の両方のイベント種別を含むため、両方のイベントメッセージを受信できます。次の例は、絞り込んだチャネル /event/Order_Channel__chn への登録後に受信された 2 つのイベントメッセージを示しています。
    1{
    2  "schema": "LofZQqy_2SpDbzzZptVpxQ",
    3  "payload": {
    4    "City__c": "Los Angeles",
    5    "CreatedById": "005RM000002Qu16YAC",
    6    "Amount__c": 35,
    7    "CreatedDate": "2022-03-29T13:45:19.141Z",
    8    "Order_Number__c": "1"
    9  },
    10  "event": {
    11    "EventApiName": "Order_NorthAmer__e",
    12    "EventUuid": "51de9c1f-3de0-48f8-b107-74fb1b377340",
    13    "replayId": 10305
    14  }
    15}
    16
    17{
    18  "schema": "e8jMOnID4xDThlaPBMx5gg",
    19  "payload": {
    20    "City__c": "London",
    21    "CreatedById": "005RM000002Qu16YAC",
    22    "Amount__c": 20,
    23    "CreatedDate": "2022-03-29T13:45:19.230Z",
    24    "Order_Number__c": "2"
    25  },
    26  "event": {
    27    "EventApiName": "Order_EMEA__e",
    28    "EventUuid": "218544ad-0472-4315-970f-8825a2802de6",
    29    "replayId": 10306
    30  }
    31}