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

エンタープライズメッセージングプラットフォームイベント

Salesforce のエンタープライズメッセージングプラットフォームは、イベント駆動型ソフトウェアアーキテクチャのメリットを提供します。プラットフォームイベントは、アプリケーションがその後のアクションを実行するために送受信するイベントメッセージ (または通知) です。プラットフォームイベントは、変化をやり取りしてその変化に応答するためのプロセスを簡素化します。複雑なロジックを記述することはありません。公開者と登録者はイベントを通じて互いにやり取りします。1 つ以上の登録者が同じイベントをリスンし、アクションを実行できます。

たとえば、ソフトウェアシステムは、プリンタインクカートリッジに関する情報が含まれるイベントを送信できます。登録者はこのイベントを登録し、プリンタのインクレベルを監視して、低インクレベルのカートリッジを交換するための注文を実行できます。

プラットフォームイベントは、カスタムオブジェクトを定義する方法と同じ方法で、Salesforce で定義されます。プラットフォームイベント定義を作成するには、定義に名前を付けて、カスタム項目を追加します。カスタム項目は、イベントメッセージで送信されるデータを定義します。プラットフォームイベントは Salesforce のデータ型のサブセットをサポートします。「プラットフォームイベント項目」を参照してください。次の表に、プリンタインクイベントのカスタム項目の定義のサンプルを示します。

項目名 項目 API 参照名 データ型
Printer Model (プリンタモデル) Printer_Model__c Text
Serial Number (シリアル番号) Serial_Number__c Text
Ink Percentage (インクレベル) Ink_Percentage__c Number

Apex または API を使用して、プラットフォームイベントを公開および消費できます。プラットフォームイベントは Apex トリガを通じて Salesforce プラットフォームと統合します。トリガは Salesforce プラットフォーム上のイベントコンシューマであり、イベントメッセージをリスンします。API を介した外部アプリケーションまたは Apex を介したネイティブ Salesforce アプリケーションでイベントメッセージが公開されると、そのイベントのトリガが起動されます。トリガはイベント通知に応答してアクションを実行します。プリンタインクの例を使用すると、プリンタを監視しているソフトウェアシステムは、インクレベルが低くなったときに API コールを実行してイベントを公開します。プリンタイベントメッセージには、プリンタモデル、シリアル番号、およびインクレベルが含まれます。プリンタがイベントメッセージを送信すると、Salesforce で Apex トリガが起動されます。トリガはケースレコードを作成し、新しいカートリッジの注文を実行します。

外部アプリケーションは、CometD を使用してチャネルを登録することで、イベントメッセージをリスンできます。Visualforce ページや Lightning コンポーネントなどのプラットフォームアプリケーションも CometD を使用してイベントメッセージを登録できます。

プラットフォームイベントおよび sObject

プラットフォームイベントは特別な種類の Salesforce エンティティであり、多くの点で sObject に似ています。イベントメッセージはプラットフォームイベントのインスタンスです。これは、レコードがカスタムオブジェクトのインスタンスであるということに似ています。ただし、カスタムオブジェクトとは異なり、イベントレコードの更新または削除はできません。また、イベントレコードを Salesforce ユーザインターフェースに表示できないほか、プラットフォームイベントにページレイアウトはありません。プラットフォームイベント定義を削除すると、プラットフォームイベント定義は完全に削除されます。

プラットフォームイベントの参照および作成権限を設定できます。プロファイルまたは権限セットでユーザに権限を付与します。

プラットフォームイベントおよびトランザクション

カスタムオブジェクトとは異なり、プラットフォームイベントは Lightning プラットフォームのデータベーストランザクションでは処理されません。そのため、公開されたプラットフォームイベントはロールバックできません。次の点に注意してください。

  • API を使用してプラットフォームイベントを公開した場合、allOrNoneHeader API ヘッダーは無視されます。
  • Apex の setSavepoint() および rollback() データベースメソッドはプラットフォームイベントではサポートされません。

プラットフォームイベントを公開する場合、DML 制限と他の Apex ガバナ制限が適用されます。

イベント保持

プラットフォームイベントメッセージは 24 時間保存されます。CometD クライアントを使用してチャネルに登録すると、過去のイベントメッセージを取得できます。