プラットフォームイベントの役割

プラットフォームイベントを使用し、リアルタイムイベントデータのやり取りによって、Salesforce のビジネスプロセスと外部アプリケーションを接続します。プラットフォームイベントは、データを含む安全で拡張性があるメッセージです。パブリッシャーは、サブスクライバーがリアルタイムで受信するイベントメッセージを公開します。公開されたデータをカスタマイズするには、プラットフォームイベント項目を定義します。

一般的なプラットフォームイベントの割り当て

説明 Performance Edition および Unlimited Edition Enterprise Edition Developer Edition Professional Edition (API アドオンあり)
1 つの組織で作成できるプラットフォームイベント定義の最大数 100 50 5 5
すべてのチャネルおよびすべてのイベント種別での、同時 CometD クライアント (サブスクライバー) の最大数 2,000 1,000 20 20
プラットフォームイベントを登録できるプロセスの最大数 4,000 4,000 4,000 5
プラットフォームイベントを登録できる有効なプロセスの最大数 2,000 2,000 2,000 5
作成可能なカスタムチャネルの最大数 100 100 100 100
チャネルにチャネルメンバーとして追加できる個別のプラットフォームイベントの最大数同じプラットフォームイベントを複数のチャネルに追加する場合、割り当てごとに 1 回カウントされます。 50 50 5 5

プラットフォームイベントの作成

image.png

image.png

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

  • フローによるイベントメッセージの公開
    フローを使用して、ユーザ操作、自動化プロセス、Apex、またはワークフローアクションの一環としてイベントメッセージを Salesforce アプリケーションから公開します。
    image.png
    image.png
    image.png

Apex によるイベントメッセージの公開

  • Apex を使用して、イベントメッセージを Salesforce アプリケーションから公開します。
    イベントメッセージを公開するには、EventBus.publish メソッドをコールします。
List<Test__e> listTest = new List<Test__e>();
listTest.add(new Test__e(test__c='メッセージ');

// プラットフォームイベント公開
List<Database.SaveResult> results = EventBus.publish(listTest);

// 公開結果取得
for (Database.SaveResult sr : results) {
    if (sr.isSuccess()) {
        System.debug('Successfully published event.');
    } else {
        for(Database.Error err : sr.getErrors()) {
            System.debug('Error returned: ' +
                        err.getStatusCode() +
                        ' - ' +
                        err.getMessage());
        }
    }
}

バッチサイズ設定方法

  • PlatformEventSubscriberConfig

    項目名 項目の型 説明
    batchSize int プラットフォームイベント Apex トリガのカスタムバッチサイズ (1 ~ 2,000)。バッチサイズは 1 回の実行でトリガに送信できるイベントメッセージの最大数に対応します。デフォルトのバッチサイズはプラントイベントトリガで 2,000 です。一度に 1 つのイベントを処理するために、バッチサイズを 1 に設定することはお勧めしません。バッチサイズが小さいと、イベントメッセージの処理速度が遅くなることがあります。
    isProtected boolean (継承された項目)。このコンポーネントが保護されるか (true)、否か (false) を示します。保護コンポーネントは、登録者の組織で作成されたコンポーネントからリンク付けしたり参照したりすることはできません。開発者は、今後のリリースで、インストールの失敗を心配することなく保護コンポーネントを削除できます。ただし、コンポーネントが非保護に設定され、グローバルにリリースされると、開発者は削除できなくなります。
    masterLabel string 必須。PlatformEventSubscriberConfig コンポーネントの表示ラベル。
    platformEventConsumer string 必須。設定するプラットフォームイベント Apex トリガの完全名。
    user string プラットフォームイベント Apex トリガを実行するユーザのユーザ名。デフォルトでは、プラットフォームイベントトリガは自動化プロセスエンティティとして実行されます。実行ユーザを特定のユーザに設定することには、次のような利点があります。・レコードがこのユーザとして作成または変更される。・OwnerId 項目があるレコードが作成または変更されたときに、OwnerId 項目にこのユーザが入力される。・このユーザによってトリガ実行のデバッグログが作成される。・デフォルトの自動化プロセスユーザではサポートされないメールをトリガから送信できる。
  • PlatformEventSubscriberConfigs フォルダにバッチサイズの設定ファイルを追加

フォルダ階層

├─force-app
│  └─main
│      └─default
│          └─PlatformEventSubscriberConfigs
│                  トリガConfig.platformEventSubscriberConfig-meta.xml ⇐ 設定ファイル

image.png
設定ファイルの中身
image.png

参考

[プラットフォームイベント開発者ガイド]https://developer.salesforce.com/docs/atlas.ja-jp.platform_events.meta/platform_events/platform_events_intro.htm)

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

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

PlatformEventSubscriberConfig

最後

プラットフォームイベントバッチサイズの設定は有効まで時間がかかります(約3時間かかります)

image.png