前回はプラットフォームイベントの基礎情報と定義の仕方について紹介しました。
今回はプラットフォームイベントの登録の仕方についての記載となります。
プラットフォームイベントの公開
プラットフォームイベントそれぞれ以下の手順から登録が可能です。
ほぼほぼオブジェクトレコードと同じやり方になります。
プロセス
アクションでレコードを作成から公開が可能です。
従来のオブジェクトレコードの作成と同じやり方で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",
・・・
}
次回はプラットフォームを受信する側の動作について定義していきたいと思います。