Skip to main content

プラットフォームイベントの定義

メモ

メモ

日本語で受講されている方へ
このバッジの Trailhead ハンズオン Challenge は英語で受講していただく必要があります。英語の意味についてはかっこ内の翻訳をご参照ください。必ず英語の値をコピーして貼り付けてから、Trailhead Playground の言語を [English] に、ロケールを [United States] に切り替えてください。こちらの指示に従ってください。

翻訳版の Trailhead を活用する方法については、自分の言語の Trailhead バッジをご覧ください。

このプロジェクトでは、次のことを行います。

  • プラットフォームイベントの概要を確認する。
  • 開発環境を設定する。
  • カスタムプラットフォームイベントを定義する。
  • インスタント通知を表示する Lightning コンソールアプリケーションを作成する。
  • コンソールアプリケーションと lightning/empApi モジュールを使用してプラットフォームイベントに登録する。
  • 作業内容をテストするために、提供されている Heroku アプリケーションを使用してプラットフォームイベントを公開する。
  • プラットフォームイベントを公開する Chatter Apex トリガーを実装する。

始める前に

このプロジェクトは、Lightning Web コンポーネントを作成した経験がある Salesforce 開発者向けに設計されています。まだ Lightning Web コンポーネントになれていない場合は、このプロジェクトを続行する前に、「Lightning Web コンポーネントの作成」トレイルでいくつかのバッジを獲得することをお勧めします。

すでに Salesforce DX 開発環境が整っていて、その環境で Lightning Web コンポーネントを作成して組織にリリースできることを前提とします。まだこのプロセスに不慣れな場合は、このプロジェクトの前に「クイックスタート: Lightning Web コンポーネント」プロジェクトを修了してください。

Bear Watch インスタント通知アプリケーションの概要

このプロジェクトでは、インスタント通知アプリケーションを作成することによって、プラットフォームイベントの使用方法を学習します。このアプリケーションを使用すると、自然公園の警備隊員が Salesforce プラットフォームを介してリアルタイムの通知を受信できます。

ビジターセンター付近でクマが目撃されたというインスタント通知アラートが表示されているホーム画面のスクリーンショット

ここで作成するインスタント通知アプリケーションでは、イベントは REST API を使用して Heroku アプリケーションから、または Chatter 投稿の Apex トリガーから公開されます。イベントは、イベントバスへの登録者として機能する Lightning コンソールアプリケーションによって lightning/empApi モジュール経由で受信されます。このアーキテクチャを下図に示します。

プロジェクトのアーキテクチャ図。

プラットフォームイベントの概要

プラットフォームイベントにより、開発者は安全で、スケーラブルで、カスタマイズ可能なイベント通知を作成できます。また、公開/登録アーキテクチャによって、Salesforce プラットフォーム内だけではなく外部ソースとの間でもイベントを交換できます。アプリケーションは、Apex またはいずれかの Salesforce プラットフォーム API (Pub/Sub API、SOAP API、REST API、または Bulk API) を使用してプラットフォームイベントを公開できます。フローもプラットフォームイベントを公開できます。アプリケーションは、Apex トリガー、Pub/Sub API (gRPC) クライアント、CometD クライアント、lightning/empApi モジュール、またはフローを使用してイベントに登録できます。CometD と gRPC は、どちらも HTTP ベースのイベントルーティングプロトコルであり、外部アプリケーションがポーリングを必要とせずにプラットフォームイベントに登録できるようにします。CometD は HTTP/1.1 標準、gRPC はより新しい HTTP/2 標準をベースとしています。

メモ

ポーリング

ポーリングとは、サーバーに対してリソースのクエリを繰り返す動作です。この手法は、そのリソースの状態変化に対する疑似リアルタイム応答を取得するために使用されます。この手法には拡張性がないため、Web ページでポーリングを使用することは望ましくありません。

プラットフォームイベントには、カスタムオブジェクトと同様にカスタマイズ可能なデータが含まれています。ただし、カスタムオブジェクトとは異なり、イベントは 72 時間しか保持されません。また、レコードとは異なり、イベントのリストを表示するユーザーインターフェースはなく、SOQL によってクエリすることもできません。

プラットフォームイベントについての詳細は、「プラットフォームイベントの基礎」モジュールと『Platform Events Developer Guide (プラットフォームイベント開発者ガイド)』を参照してください。

新しい Trailhead Playground を作成する

このプロジェクト用に、新しい Trailhead Playground を作成する必要があります。このページの一番下までスクロールして Playground 名をクリックし、[Create Trailhead Playground (Trailhead Playground を作成)] をクリックします。新しい Trailhead Playground を作成するには、通常 3、4 分かかります。

メモ

メモ

必ず新しい Trailhead Playground を使用してください。既存の組織や Playground を使用すると、Challenge に取り組んでいるときに問題が発生することがあります。

Trailhead Playground のユーザー名とパスワードを取得する

では始めましょう。Trailhead Playground に移動します。(Playground がまだ開いていない場合は、このページの一番下までスクロールして [Launch (起動)] をクリックします。)組織に [Get Your Login Credentials (ログイン情報の表示)] というタブが表示されている場合は、ステップ 1 まで進みます。表示されていない場合は、アプリケーションランチャー (アプリケーションランチャー) で [Playground Starter] をクリックして手順に従います。

  1. [Get Your Login Credentials (ログイン情報の表示)] タブをクリックし、ユーザー名をメモします。
  2. [Reset My Password (パスワードのリセット)] をクリックします。これにより、ユーザー名に関連付けられているアドレスにメールが送信されます。
  3. メール内のリンクをクリックします。
  4. 新しいパスワードを入力し、確認して、[Change Password (パスワードを変更)] をクリックします。

プロジェクトを設定する

  1. Visual Studio Code で、Instant Notification App (インスタント通知アプリケーション) という名前の Salesforce DX プロジェクトを作成します。
  2. Trailhead Playground を承認します。

プラットフォームイベントを定義する

  1. Playground に戻り、[Setup (設定)] から、[Quick Find (クイック検索)] ボックスに Platform Events と入力し、[Platform Events (プラットフォームイベント)] を選択します。
  2. [Platform Events (プラットフォームイベント)] ページで、[New Platform Event (新規プラットフォームイベント)] をクリックします。
  3. 「Notification」(通知) プラットフォームイベントを作成して、次のように設定します。
    • Label (表示ラベル): Notification (通知)
    • Plural Label (表示ラベル(複数形)): Notifications (通知)
    • Object Name (オブジェクト名): Notification
    • Description (説明): Real time notifications (リアルタイム通知)
  4. [Save (保存)] をクリックします。

項目にプラットフォームイベントを追加する

  1. [Notification (通知)] プラットフォームイベントページで、[Custom Fields & Relationships (カスタム項目 & リレーション)] の [New (新規)] をクリックします。
  2. データ型に [Text (テキスト)] を選択します。
  3. [Next (次へ)] をクリックします。
  4. 次の値を設定します。
    • Field Label (項目の表示ラベル): Message (メッセージ)
    • Length (文字数): 255
    • Field Name (項目名): Message (メッセージ)
    • Description (説明): The notification message (通知メッセージ)
    • Required (必須項目): [Always require a value in this field in order to save a record (値の入力を必須にする)] の横にあるチェックボックスをオンにします。
  5. [Save (保存)] をクリックします。

リソース

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる