プラットフォームイベント開発者ガイド
Spring '26 (API version 66.0)
Winter '25 (API version 62.0)
Spring '24 (API version 60.0)
Winter '24 (API version 59.0)
Summer '23 (API version 58.0)
Spring '23 (API version 57.0)
Winter '23 (API version 56.0)
Summer '22 (API version 55.0)
Spring '22 (API version 54.0)
Winter '22 (API version 53.0)
Summer '21 (API version 52.0)
Spring '21 (API version 51.0)
Winter '21 (API version 50.0)
Summer '20 (API version 49.0)
Spring '20 (API version 48.0)
Winter '20 (API version 47.0)
Summer '19 (API version 46.0)
Spring '19 (API version 45.0)
Winter '19 (API version 44.0)
Summer '18 (API version 43.0)
Spring '18 (API version 42.0)
フロー
プロセス
Apex 公開コールバッククラス
コールバックの実行ユーザーとデバッグログ
EventUuid 項目を含むイベントの作成
公開コールバックの呼び出し
公開コールバックに関するベストプラクティス
例: 公開が失敗した場合にフォローアップ ToDo を作成する公開コールバッククラス
例: コールバックインスタンスを使用したイベントの公開
例: 公開が失敗した場合と成功した場合にフォローアップ ToDo を作成する公開コールバッククラス
例: コールバック結果とイベントメッセージを相関させる公開コールバッククラス
Apex 公開コールバックのテスト
Apex 公開コールバックの制限
Salesforce API
Pub/Sub API
Apex 公開コールバックを使用した非同期プラットフォームイベント公開の結果の取得
実装した Apex 公開コールバックを使用して EventBus.publish コールの最終的な結果を取得できます。コールバックを使用しない場合、取得できるのは最終的な結果ではなく、EventBus.publish コールの Database.SaveResult の途中のキューイング結果のみです。
イベント公開は非同期となっており、SaveResult で直ちに返される結果は、Salesforce の公開操作をキューに登録した結果です。イベントメッセージの必須項目が欠落しているなどの理由でエラーが直ちに返されることもあります。直ちにエラーが返されない場合は、リソースが使用可能になると、キューに登録された公開コールがシステムによって実行され、最終結果が Apex 公開コールバックで送信されます。
Apex 公開コールバックは、プラットフォームイベントが大量にある場合に使用できます。従来の標準量イベントはサポートされていません。
メモ
-
Apex 公開コールバッククラス
Apex 公開コールバックには、Apex の非同期公開操作の結果が含まれます。公開操作が完了して、最終結果の準備が整うと、コールバックが返されます。実装できるインターフェースは、EventBus.EventPublishFailureCallback と EventBus.EventPublishSuccessCallback のいずれか 1 つです。前者は公開が失敗した場合、後者は公開が成功した場合に使用します。 -
コールバックの実行ユーザーとデバッグログ
公開コールバックは、自動化プロセスユーザーの下で実行されます。このため、コールバックで作成されるすべてのレコードでは、CreatedById や OwnerId などのシステムユーザー項目が Automated Process に設定されます。 -
EventUuid 項目を含むイベントの作成
EventUuid 項目は、イベントメッセージを一意に識別するためのものです。コールバック結果で返されたイベントと公開コールのイベントを照合するために使用されます。各イベントオブジェクトで EventUuid 項目値が生成されるよ��にするには、SObjectType.newSObject(recordTypeId, loadDefaults) Apex メソッドを使用してイベントオブジェクトを作成します。 -
公開コールバックの呼び出し
最終的な公開結果が使用可能になった時点でコールバックが呼び出されるようにするには、EventBus.publish コールの 2 番目のパラメーターとしてコールバッククラスのインスタンスを渡します。 -
公開コールバックに関するベストプラクティス
この機能を実装するときは、公開コールバックに関する次のベストプラクティスに留意してください。 -
例: 公開が失敗した場合にフォローアップ ToDo を作成する公開コールバッククラス
この公開コールバッククラスは、onFailure メソッドでイベント公開が失敗したときに ToDo を作成します。この挿入される ToDo には、失敗したイベントの数とイベントの UUID が含まれています。 -
例: コールバックインスタンスを使用したイベントの公開
コールバックを起動するには、FailureCallback クラスのインスタンスを渡して EventBus.publish コールを実行します。コールバックを使用して、1 つのイベントまたはイベントのバッチを公開できます。 -
例: 公開が失敗した場合と成功した場合にフォローアップ ToDo を作成する公開コールバッククラス
この公開コールバッククラスは、前述の例を変更したものです。EventBus.EventPublishSuccessCallback インターフェースも実装しており、成功したケースと失敗したケースの両方を処理します。イベント公開が失敗または成功したときに ToDo を作成します。この挿入される ToDo には、失敗したイベントの数とイベントの UUID が含まれています。 -
例: コールバック結果とイベントメッセージを相関させる公開コールバッククラス
このコールバッククラスの実装例は、失敗したイベントの公開を再試行する方法を示しています。その基礎となっているのは、Order オブジェクトのトリガーです。 -
Apex 公開コールバックのテスト
Apex 公開コールバッククラスをテストするには、Apex テストクラスを追加します。Apex クラスをパッケージ化または本番環境にリリースする前に Apex テストを用意し、コードカバー率の要件を満たす必要があります。 -
Apex 公開コールバックの制限
Apex 公開コールバックには、次の制限があることに注意してください。