この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

TriggerContext クラス

現在実行されているプラットフォームイベントトリガーに関する情報を提供します (EventBus.RetryableException によるトリガーの再試行回数など)。また、トリガー実行を再開する方法も提供します。

名前空間

EventBus

TriggerContext のプロパティ

TriggerContext のプロパティは次のとおりです。

lastError

参照のみ。最後に発生した EventBus.RetryableException に含まれるエラーメッセージ。

署名

public String lastError {get;}

プロパティ値

型: String

使用方法

このプロパティが返すエラーメッセージは、EventBus.RetryableException 例外の作成時に次のように渡されたメッセージです。

1throw new EventBus.RetryableException(
2             'Condition is not met, so retrying the trigger again.');

retries

参照のみ。EventBus.RetryableException の発生が原因でトリガーが再試行された回数。

署名

public Integer retries {get;}

プロパティ値

型: Integer

TriggerContext のメソッド

TriggerContext のメソッドは次のとおりです。

currentContext()

現在実行されているトリガーに関する情報が含まれる EventBus.TriggerContext クラスのインスタンスを返します。

署名

public static eventbus.TriggerContext currentContext()

戻り値

型: EventBus.TriggerContext

現在実行されているトリガーに関する情報。

getResumeCheckpoint()

setResumeCheckpoint() によって設定された再実行 ID を返します。返された値は、イベントメッセージの再実行 ID で、このイベントメッセージの後にトリガー処理が新しいトリガー呼び出しで再開します。

署名

public String getResumeCheckpoint()

戻り値

型: String

setResumeCheckpoint(resumeReplayId)

イベントストリーミング内にチェックポイントを設定します。このチェックポイントで、プラットフォームイベントトリガーが新しい呼び出しで再開します。このメソッドを使用して、制限に関する例外やキャッチされなかった例外から回復したり、1 つのトリガー実行で処理されるイベント数を制御したりします。このメソッドをコールするときは、最後に正常に処理されたイベントメッセージの再実行 ID を渡します。例外がキャッチされなかったためか、意図的に、Trigger.New のすべてのイベントが処理される前にトリガーが実行を停止した場合、トリガーは再度呼び出されます。新しい実行は、ストリーム内のチェックポイントが設定された再実行 ID を持つイベントメッセージの後のイベントメッセージから開始します。

署名

public void setResumeCheckpoint(String resumeReplayId)

パラメーター

resumeReplayId
型: String
最後に正常に処理されたプラットフォームイベントメッセージの再実行 ID。その後に新しいトリガー実行コンテキストで処理を再開することになります。

戻り値

型: void

使用方法

この方法では、指定された再実行 ID が有効でない場合、EventBus.InvalidReplayIdException が発生します。再実行 ID は、Trigger.new リストのイベントの現在のトリガーバッチにありません。

次のスニペットは、メソッドをコールしてイベントインスタンスの replayId プロパティで渡す方法を示しています。

1EventBus.TriggerContext.currentContext().setResumeCheckpoint(event.replayId);