チャネルへの登録
カスタムチャネルとそのメンバーを作成したら、CometD クライアントを使用してチャネルへ登録して、イベントメッセージを受信します。カスタムチャネルをサポートしているのは CometD クライアントのみです。Apex トリガー、フロー、プロセスなど他のサブスクライバーでは、カスタムチャネルはサポートされていません。
-
EMP コネクタの設定については、「Java クライアントの例」の手順を参照してください。チャネル引数には、作成したカスタムチャネル /event/Order_Channel__chn を指定します。チャネル名は、/event/ChannelName__chn の形式で指定します。
-
カスタムチャネルへ登録したら、Order_NorthAmer__e イベントと Order_EMEA__e イベントの両方のイベントメッセージを Apex を使って開発者コンソールで公開します。
- Salesforce Classic では、 をクリックします。
- Lightning Experience で、クイックアクセスメニューをクリックし、[開発者コンソール] を選択します。
- を選択します。
-
新しいウィンドウで、内容を次の 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}
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}