プラットフォームイベントを定義する
このプロジェクトでは、次のことを行います。
- プラットフォームイベントの概要を確認する。
- 開発環境を設定する。
- カスタムプラットフォームイベントを定義する。
- インスタント通知を表示する 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 標準をベースとしています。
プラットフォームイベントには、カスタムオブジェクトと同様にカスタマイズ可能なデータが含まれています。ただし、カスタムオブジェクトとは異なり、イベントは 72 時間しか保持されません。また、レコードとは異なり、イベントのリストを表示するユーザーインターフェースはなく、SOQL によってクエリすることもできません。
プラットフォームイベントについての詳細は、「プラットフォームイベントの基礎」モジュールと『Platform Events Developer Guide (プラットフォームイベント開発者ガイド)』を参照してください。
新しい Trailhead Playground を作成する
このプロジェクト用に、新しい Trailhead Playground を作成する必要があります。このページの一番下までスクロールして Playground 名をクリックし、[Create Trailhead Playground (Trailhead Playground を作成)] をクリックします。新しい Trailhead Playground を作成するには、通常 3、4 分かかります。
Trailhead Playground のユーザー名とパスワードを取得する
では始めましょう。Trailhead Playground に移動します。(Playground がまだ開いていない場合は、このページの一番下までスクロールして [Launch (起動)] をクリックします。)組織に [Get Your Login Credentials (ログイン情報を取得する)] というタブが表示されている場合は、ステップ 1 まで進みます。表示されていない場合は、アプリケーションランチャー () で [Playground Starter] をクリックして手順に従います。
- [Get Your Login Credentials (ログイン情報を取得する)] タブをクリックし、ユーザー名をメモします。
- [Reset My Password (パスワードのリセット)] をクリックします。これにより、ユーザー名に関連付けられているアドレスにメールが送信されます。
- メール内のリンクをクリックします。
- 新しいパスワードを入力し、確認して、[Change Password (パスワードを変更)] をクリックします。
プロジェクトを設定する
- Visual Studio Code で、
Instant Notification App
(インスタント通知アプリケーション) という名前の Salesforce DX プロジェクトを作成します。 - Trailhead Playground を承認します。
プラットフォームイベントを定義する
- Playground に戻り、[Setup (設定)] から、[Quick Find (クイック検索)] ボックスに
Platform Events
と入力し、[Platform Events (プラットフォームイベント)] を選択します。 - [Platform Events (プラットフォームイベント)] ページで、[New Platform Event (新規プラットフォームイベント)] をクリックします。
- 「Notification」(通知) プラットフォームイベントを作成して、次のように設定します。
- Label (表示ラベル):
Notification
(通知) - Plural Label (表示ラベル(複数形)):
Notifications
(通知) - Object Name (オブジェクト名):
Notification
- Description (説明):
Real time notifications
(リアルタイム通知)
- Label (表示ラベル):
- [Save (保存)] をクリックします。
項目にプラットフォームイベントを追加する
- [Notification (通知)] プラットフォームイベントページで、[Custom Fields & Relationships (カスタム項目 & リレーション)] の [New (新規)] をクリックします。
- データ型に [Text (テキスト)] を選択します。
- [Next (次へ)] をクリックします。
- 次の値を設定します。
- 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 (値の入力を必須にする)] の横にあるチェックボックスをオンにします。
- Field Label (項目の表示ラベル):
- [Save (保存)] をクリックします。