学習の目的この単元を完了すると、次のことを理解できるようになります。一括処理」と呼ばれるのはそのためです)。一括処理が適しています。一括処理の内部的なしくみは次のとおりです。万件のレコードを処理するとします。ジョブキューに置かれ、別個のトランザクションとして実行されます。つの大きな利点があります。各トランザクションは新しいガバナ制限のセットで開始されるため、コードをガバナ実行制限内に抑えやすくなります。いずれかのバッチが処理に失敗しても、他のすべての正常に処理された一括処理トランザクションはロールバックされません。つのメソッドを含める必要があります。渡して処理するレコードまたはオブジェクトを収集するために使用されます。オブジェクトを返します。クエリを使用して一括処理ジョブのオブジェクトの範囲を生成します。リンクを確認してください。万レコードまで照会できます。クエリによって取得されるレコード合計数に対するガバナ制限はそのまま適用されます。ごとに実際の処理を実行します。メソッドから受け取った順序で実行される保証はありません。このメソッドは次を取得します。オブジェクトへの参照。リスト、またはパラメータ化された型のリスト。使用している場合は、返されたリストを使用します。一括処理クラスのスケルトンは次のようになります。メソッドに渡すレコードの数を指定することもできます。ガバナ制限に近づいている場合は、このバッチサイズの制限が必要になることがあります。レコードが作成されるため、ジョブの進行状況を追跡できます。ジョブキュー内のジョブの管理ができます。ジョブキューについてはこの後すぐに取り上げます。一括処理は通常ステートレスです。一括処理ジョブの各実行は、個別のトランザクションとみなされます。つのトランザクションとみなされます。指定すると、すべてのトランザクション間で状態を保持できます。使用するとき、インスタンスメンバー変数のみがトランザクション間で値を保持します。状態を保持すると、処理されているレコードをカウントまたは集計する場合に役立ちます。次の例では、一括処理ジョブで取引先責任者レコードを更新し、影響を受けたレコードの合計数を追跡して、通知メールにその情報を追加できるようにします。一括処理クラスの記述方法がわかったので、実用的な例を見てみましょう。米国内の企業のすべての取引先責任者は、郵送先住所として親会社の請求先住所が設定されていなければならないと定めるビジネス要件があるとします。ところが、ユーザは正しい住所なしで新規取引先責任者を入力しています。要件はわかっているはずです。一括処理クラスを記述します。メソッドによって渡されたすべての取引先レコードを検出し、関連付けられた取引先責任者を取引先の郵送先住所で更新します。使用して追跡した状態に基づく更新済みレコード数を含むメールを送信します。}このコードはかなり簡単ですが、実際にはもう少し難解になる場合があります。処理を詳細に説明します。メソッドが個々のバッチで処理するすべてのレコードのコレクションを提供します。コールし、処理するレコードのリストを返します。「USA」の取引先レコードをすべて照会します。パラメータで渡されます。増分して処理されたレコード数を記録します。対するクエリを実行して、ジョブの状況、送信者のメールアドレス、およびその他の情報を取得します。その後で、ジョブ情報と更新された取引先責任者の数を含む通知メールをジョブ送信者に送信します。開発とテストは連携して進むため、ここでは上記の一括処理クラスのテスト方法を説明します。一括処理クラスをコールし、レコードが正しい住所で適切に更新されたことを確認します。件の取引先レコードを挿入します。次に、取引先ごとに、関連付けられた取引先責任者レコードを作成します。このデータは、一括処理クラスで使用されます。件よりも少なくなるようにします。コールして一括処理クラスのインスタンスを渡すことで呼び出されます。ブロック内に含まれます。重要な処理はすべてここで行われます。コールの後に実行されます。後に同期して実行されます。一致することを確認して、すべての取引先責任者が正しく更新されたことを検証しています。一括処理を使用するときにもいくつかの留意点があります。一括処理コードで使用されるクエリを調整します。キュー内のジョブ数が多い場合、一括処理ジョブの実行時間が長くなるほど、キューにある他のジョブが遅延する可能性が高くなります。ベストプラクティスとして、次のようなものがあります。一括処理を使用します。使用することをお勧めします。遅延する可能性を最小限に抑えるには、作成する非同期要求の数を最小限に抑えます。一括処理ジョブをトリガから開始する場合は、細心の注意を払ってください。制限を超える数の一括処理ジョブをトリガで追加しないようにする必要があります。