【Salesforce】プラットフォームイベントの公開


前回はプラットフォームイベントの基礎情報と定義の仕方について紹介しました。
今回はプラットフォームイベントの登録の仕方についての記載となります。

プラットフォームイベントの公開

プラットフォームイベントそれぞれ以下の手順から登録が可能です。
ほぼほぼオブジェクトレコードと同じやり方になります。

プロセス

アクションでレコードを作成から公開が可能です。
従来のオブジェクトレコードの作成と同じやり方でOKです。

フロー

こちらも従来のオブジェクトと同様の手順で、「レコードの作成」ノードから登録が可能です。

Apex

Apexからプラットフォームイベントを登録する場合はちょっと異なります。
Insertではなく、EventBus.publishメソッドを使用してプラットフォームイベントを公開します。

TestEvent__e pe = new TestEvent__e(
    RecordId__c = recordId,
    HasError__c = true,
    Message__c = 'エラーが発生しました'
);
Database.SaveResult sr = EventBus.publish(pe);

REST API

プラットフォームイベントはREST API経由からでも登録できます。
外部システムからSalesforce側にイベントを通知するときはこのREST APIが主に使われるのではないかと思います。

こちらもオブジェクトレコードを登録する手順と同じです。
従来のオブジェクト名を入れるところで、プラットフォームイベントのAPI名(__eで終わるもの)を入れておけばOKです。

/services/data/v49.0/sobjects/TestEvent__e

POSTのリクエストボディにも項目と設定値をセットしてあげればOK。

{
   "RecordId__c" : "xxxxxxxxxxxxxxxxxx",
   "HasError__c" : false,
   "Message__c" : "Error",
   ・・・
}

次回はプラットフォームを受信する側の動作について定義していきたいと思います。