Skip to main content
Join the Agentforce Hackathon on Nov. 18-19 to compete for a $20,000 Grand Prize. Sign up now. Terms apply.

既存のチャネルメンバーを更新する

メモ

メモ

日本語で受講されている方へ
Challenge は日本語の Trailhead Playground で開始し、かっこ内の翻訳を参照しながら進めていってください。Challenge での評価は英語データを対象に行われるため、英語の値のみをコピーして貼り付けるようにしてください。日本語の組織で Challenge が不合格だった場合は、(1) この手順に従って [Locale (地域)] を [United States (米国)] に切り替え、(2) [Language (言語)] を [English (英語)] に切り替えてから、(3) [Check Challenge (Challenge を確認)] ボタンをクリックしてみることをお勧めします。

翻訳版 Trailhead を活用する方法の詳細は、自分の言語の Trailhead バッジを参照してください。

チャネルメンバーがすでに存在する場合は、POST 要求を実行して強化された項目で上書きすることはできません。代わりに、PATCH 要求を実行することでチャネルメンバーを更新します。この手順では、SalesEvents チャネルの強化された項目を 1 つの強化された項目 (Phone 項目) に置き換えます。

チャネル ID を照会する

  1. Salesforce Platform API コレクションのフォークで、[Event Platform (イベントプラットフォーム)] > [Custom Channels (カスタムチャネル)] の順に展開して、[List event channels (イベントチャネルを一覧表示)] をクリックします。
  2. [Params (パラメーター)] タブで、q キー値に WHERE 句 WHERE DeveloperName='SalesEvents' を追加します。完全な URI は次のようになります。{{_endpoint}}/services/data/v{{version}}/tooling/query/?q=SELECT Id,DeveloperName,MasterLabel,ChannelType FROM PlatformEventChannel WHERE DeveloperName='SalesEvents'
  3. [Send (送信)] をクリックします。
  4. 返される応答では Id 項目にチャネル ID が含まれ、次の例のようになります。Id 値をコピーして、次の手順で使用します。
{
  "size": 1,
  "totalSize": 1,
  "done": true,
  "queryLocator": null,
  "entityTypeName": "PlatformEventChannel",
  "records": [
    {
      "attributes": {
        "type": "PlatformEventChannel",
        "url": "/services/data/v58.0/tooling/sobjects/PlatformEventChannel/0YL8b000000sXvSGAU"
      },
      "Id": "0YL8b000000sXvSGAU",
      "DeveloperName": "SalesEvents",
      "MasterLabel": "Custom Channel for Sales App",
      "ChannelType": "data"
    }
  ]
}

チャネルメンバー ID を照会する

  1. フォークされたコレクションの [Event Platform (イベントプラットフォーム)] > [Custom Channels (カスタムチャネル)] で、[List channel members (チャネルメンバーを一覧表示)] をクリックします。
  2. [Params (パラメーター)] タブで、q キー値に次の WHERE 句を追加して、<channel ID from query> を前の手順で取得した Id に置き換えます: WHERE EventChannel='<channel ID from query>' AND SelectedEntity='AccountChangeEvent'。完全な URI は次のようになります。{{_endpoint}}/services/data/v{{version}}/tooling/query/?q=SELECT Id,DeveloperName,EventChannel,FilterExpression,SelectedEntity FROM PlatformEventChannelMember WHERE EventChannel='<channel ID from query>' AND SelectedEntity='AccountChangeEvent'
  3. [Send (送信)] をクリックします。
  4. 返される応答では Id 項目にチャネルメンバー ID (例: 0YL8b000000sXvSGAU) が含まれ、次の例のようになります。この Id 値をコピーして、次の手順で使用します。
{
  "size": 1,
  "totalSize": 1,
  "done": true,
  "queryLocator": null,
  "entityTypeName": "PlatformEventChannelMember",
  "records": [
    {
      "attributes": {
        "type": "PlatformEventChannelMember",
        "url": "/services/data/v58.0/tooling/sobjects/PlatformEventChannelMember/0v88b0000004CgVAAU"
      },
      "Id": "0v88b0000004CgVAAU",
      "DeveloperName": "SalesEvents_chn_AccountChangeEvent",
      "EventChannel": "0YL8b000000sXvSGAU",
      "FilterExpression": null,
      "SelectedEntity": "AccountChangeEvent"
    }
  ]
}

PlatformEventChannelMember で PATCH 要求を行う

  1. フォークされたコレクションの [Event Platform (イベントプラットフォーム)] > [Custom Channels (カスタムチャネル)] > [Change Data Capture (変更データキャプチャ)] で、[Add enriched fields to channel member (チャネルメンバーに強化された項目を追加)] をクリックします。
  2. [Params (パラメーター)] タブで、PLATFORM_EVENT_CHANNEL_MEMBER_ID パラメーター用にコピーしたチャネルメンバー Id 値を追加します。
  3. [Body (ボディ)] をクリックして、[Raw (未加工)] と [JSON] のオプションが選択されていることを確認します。
  4. ボディを次の JSON ボディに置き換えます。
    {
      "FullName": "SalesEvents_chn_AccountChangeEvent",
      "Metadata": {
      "enrichedFields": [
        {
          "name": "Phone"
        }
      ],
      "eventChannel": "SalesEvents__chn",
      "selectedEntity": "AccountChangeEvent"
      }
    }
  5. [Send (送信)] をクリックします。
  6. 応答状況が [204 No Content (204 コンテンツなし)] であることを確認します。
メモ

更新プロセスでは、項目の追加、削除、置換に適用される、強化された項目への更新を実行する手順の概要を説明しました。強化された項目を削除するだけであれば、Tooling API で EnrichedField に対して DELETE 要求を実行するのが簡単な方法です。まず、「チャネルメンバーを追加して、変更イベント強化を設定する」手順で行ったようなクエリを実行して、削除する強化された項目の ID を取得します。次に、/tooling/sobjects/EnrichedField/<Id> で DELETE 要求を実行します。EnrichedField は項目の削除に使用できますが、更新には使用できません。

チャネルに登録して、新しい強化された項目を受信する

カスタムチャネルに登録し、レコードを更新し、受信した変更イベントで強化された項目配列を確認することで、強化の更新が適切に完了したことを検証します。SalesEvents__chn チャネルに登録したまま、もう一度取引先を更新してみましょう。

  1. Trailhead Playground で、先ほど作成した取引先のタブに切り替えます。
  2. Type (種別) 項目を編集して、Other (その他) に変更します。
  3. レコードを保存します。
  4. [Streaming Monitor] タブに切り替えます。タイムラインの最新のドットをクリックして、受信したイベントを表示します。
  5. イベントペイロードに Phone 項目が強化された項目として含まれます。External_Account_ID__cIndustry は強化された項目ではなくなったため、含まれません。受信したイベントメッセージの changedFields 配列は、変更された項目を示しています。
{
  "LastModifiedDate": "2023-08-29T19:37:19Z",
  "Phone": "4155551212",
  "Type": "Other",
  "ChangeEventHeader": {
    "commitNumber": 11658991958431,
    "commitUser": "0058b00000HpWcRAAV",
    "sequenceNumber": 1,
    "entityName": "Account",
    "changeType": "UPDATE",
    "changedFields": [
      "Type",
      "LastModifiedDate"
    ],
    "changeOrigin": "com/salesforce/api/soap/58.0;client=SfdcInternalAPI/",
    "transactionKey": "0001577e-f890-0389-9d0d-c918449ad498",
    "commitTimestamp": 1693337839000,
    "recordIds": [
      "0018b00002Vlq7xAAB"
    ]
  }
}

このプロジェクトでは、チャネルの作成方法、オブジェクトの通知を有効にするためのメンバーの追加、イベント強化の設定、イベントを受信するためのチャネルへの登録など、多くのことを学びました。また、この手順を実行するために、Postman や Streaming Monitor アプリケーションなどのさまざまなツールを使用しました。これで、変更データキャプチャチャネルとイベント強化に取り組むための知識を習得できました。 

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む