公開コールバックの呼び出し
最終的な公開結果が使用可能になった時点でコールバックが呼び出されるようにするには、EventBus.publish コールの 2 番目のパラメーターとしてコールバッククラスのインスタンスを渡します。
最初に、コールバッククラスのインスタンスを作成します。たとえば、前に実装した FailureCallback クラスを使用します。
1FailureCallback cb = new FailureCallback();次の公開コールは、イベントのリストを公開して、コールバックインスタンスを渡します。
1List<Database.SaveResult> results = EventBus.publish(eventList, cb);次の公開コールは、1 つのイベントを公開して、コールバックインスタンスを渡します。
1Database.SaveResult sr = EventBus.publish(myEvent, cb);コールバックの状況コード
EventBus.EventPublishFailureCallback または EventBus.EventPublishSuccessCallback のコールバックインスタンスを使用してイベントを公開し、公開コールが成功した場合、返される Database.SaveResult では、Database.Error の StatusCode 項目に状況コード OPERATION_WITH_CALLBACK_ENQUEUED が含まれます。また、Message 項目には、イベントのユニバーサル一意識別子 (UUID) が返されます。
1Database.SaveResult[getErrors=(
2 Database.Error[
3 getFields=();
4 getMessage=d473406e-0922-432a-9088-b8c95ef8b548;
5 getStatusCode=OPERATION_WITH_CALLBACK_ENQUEUED;]
6 );
7 getId=e02xx0000000001AAA;
8 isSuccess=true;]Salesforce 組織で Apex 公開コールバック機能が無効になっていても、コールバックを使用する EventBus.publish コールは依然として実行されます。ただし、コールバックは呼び出されません。また、返される状況コードは OPERATION_ENQUEUED になります。