進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

Apex 一括処理クラスからのプラットフォームイベントの使用のハンズオン

学習の目的

この単元を完了すると、次のことができるようになります。

  • エラーまたは例外が発生したときに Apex 一括処理クラスからプラットフォームイベントを起動する。
  • 認定 Platform デベロッパー資格を更新する。

Apex 一括処理からのプラットフォームイベントの起動

Apex 一括処理クラスは、エラーまたは例外が発生したときにプラットフォームイベントを起動できます。イベントレコードには処理中のレコード ID、例外種別、例外メッセージ、スタック追跡が含まれるため、[設定] の [Apex ジョブ] ページよりも詳細なエラーの追跡情報が提供されます。失敗のカスタム処理と再試行ロジックを組み込むこともできます。イベントをリスンしているクライアントは、その失敗頻度、失敗時に範囲内にあったレコード、その他の例外の詳細を判断できます。イベントは、Salesforce Platform 内部エラーや、ガバナ制限を超えたために発生する LimitExceptions などのキャッチできない Apex 例外でも起動されます。

Database.RaisesPlatformEvents インターフェースを実装し、プラットフォームイベントを起動するには、Apex 一括処理クラス宣言で API バージョン 44.0 以降を使用する必要があります。プラットフォームイベントレコードに、エラー発生時の一括処理ジョブのフェーズ (start、execute、finish) が追加されました。Database.Batchable インターフェースの start および finish メソッドで、エラー時にプラットフォームイベントが起動されるようになりました。これは、ベータリリースからの機能変更です。

プラットフォームイベントを起動するには、Apex 一括処理クラス宣言で Database.RaisesPlatformEvents インターフェースを実装する必要があります。

public with sharing class YourSampleBatchJob implements
Database.Batchable<SObject>, Database.RaisesPlatformEvents {
// class implementation
}

プラットフォームイベントへの登録には複数の方法があります。トリガは、Apex での自動登録メカニズムを提供します。イベントオブジェクトに対する after insert トリガを記述して、受信イベントに登録できます。

trigger BatchApexErrorEventTrigger on BatchApexErrorEvent ( after insert )
{
  // trigger implementation
}

この変更は、Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition の Lightning Experience および Salesforce Classic に適用されます。

下記のハンズオン Challenge を実行してこの新しい機能を試してください。

リソース

ハンズオン Challenge のための準備

下記のハンズオン Challenge では、この新しい機能を使用できます。この Challenge では、既存の Apex 一括処理クラスを更新して、一括処理ジョブで何らかの種別の未対応の例外が発生したら BatchApexErrorEvent プラットフォームイベントを起動する新機能を導入する必要があります。この Challenge に関しては、この情報を保持して後でシステム管理者がレビューできるようにする必要があります。つまり、ここではカスタムオブジェクトにイベントデータを書き出してシステム管理者がそれに対するレポートを作成できるようにする必要があります。

ただし、開始する前に、少しだけ設定が必要です。未管理パッケージを新しい Trailhead Playground にインストールする必要があります。この未管理パッケージを使用してハンズオン Challenge を実行します。

未管理パッケージには、記述済みの Apex 一括処理実装である BatchLeadConvert クラスが含まれています。

メモ

メモ

Database.RaisesPlatformEvents インターフェースを実装できるようにするには、Apex 一括処理クラスで API バージョン 44.0 以降を使用していることを確認します。未管理パッケージで提供されるクラスはすでにこの要件に準拠していますが、他の一括処理ジョブを更新するときには必ず API バージョンを確認してください。

ハンズオン Challenge までスクロールし、[起動] をクリックして Trailhead Playground を起動します。組織に [パッケージのインストール] というタブが表示されている場合は、以下の手順に従います。 

表示されていない場合は、アプリケーションランチャーアイコンをクリックし、[Trailhead Tips (Trailhead のヒント)] をクリックして手順に従います。Trailhead のヒントアプリケーションが表示されない場合は、こちらのパッケージのインストールリンクをクリックして、Trailhead ヘルプの「Trailhead の Challenge を完了するためのパッケージやアプリケーションのインストール」を参照してください。

  1. [パッケージのインストール] タブをクリックします。
  2. 項目に「04t4P000002EMv0」を貼り付けます。
  3. [インストール] をクリックします。
  4. [管理者のみのインストール] を選択し、[インストール] をクリックします。 

アプリケーションのインストールが終了すると、確認ページが表示され、Playground に関連付けられているアドレスにメールが届きます。