【Salesforce】プラットフォームイベントの登録


前回はプラットフォームイベントの公開方法について述べましたので、今回は受けとり側の処理について、使い方を整理したいと思います。

プラットフォームイベント登録

プラットフォームイベントが登録された際、以下の方法からイベントを起動させることが可能です。

今回はこちらのテストイベントを使用します。

テストイベントに定義されている項目は以下の通りです。
| 項目名 | データ型 | 内容 |
| :-- | :-- | :-- |
| エラーあり | チェックボックス | trueの場合エラーあり |
| フローID | テキスト | フローからイベントを公開した場合、発行元のフローIDを格納する |
| メッセージ | ロングテキストエリア | エラーメッセージを格納する |
| レコードID | テキスト | 処理対象となるレコードID |

プロセス

プロセスビルダーからプロセス作成時、プロセスを開始するタイミングで「プラットフォームイベントを受信したとき」を選択。

トリガを追加から定義したプラットフォームイベントを指定します。
それと同時に処理対象となるオブジェクトを指定します。

レコードの抽出には、テストイベントに記載されているレコードIDを使用して、対象のレコード(ここでは商談としています)を取り出します。
受信したプラットフォームイベントと処理対象となるオブジェクトはセットで扱う必要があるため、プラットフォームイベントに対象のレコードを特定できる項目を入れておきましょう。

フロー

フローでプラットフォームイベントを受信するには、フロー作成の際に「プラットフォームイベントトリガフロー」を選択します。

開始ノードでのプラットフォームイベントにテストイベントを指定します。

開始の段階で、条件を指定することはできないので、テストイベントを受信したときにエラーの有無に関わらず無条件にフローが起動します。

開始ノードで受信したプラットフォームイベントが「$Record」変数に入っているため、あとは従来のフロー通り、割り当てや判定に使います。

トリガ

プラットフォームイベント受信のタイミングでトリガを起動させることもできます。
トリガはオブジェクト名を指定する箇所(onの後)にプラットフォームイベントのAPI名(__eで終わるもの)を指定してあげればOKです。

trigger TestEventTrigger on TestEvent__e (after insert) {
    // ここに処理を記入
}