バッチの失敗したレコードの処理
バッチの状態は、一部またはすべてのレコードが失敗した場合でも、Completed になることがあります。レコードのサブセットの処理に失敗した場合、正常に処理されたレコードはロールバックされません。同様に、バッチの状態が Failed になっている場合や、ジョブが途中で中止された場合でも、一部のレコードは正常に処理されている可能性があります。
バッチ結果を取得したら、各結果行の Success 項目の値をチェックして、すべての行が正常に処理されたかどうかを確認する必要があります。レコードが正常に処理されなかった場合は、Error 列に失敗の詳細情報が表示されます。
失敗したレコードを特定し、エラーファイルにログを記録する手順は、次のとおりです。
- バッチ処理が完了するのを待ちます。「バッチに関する情報の取得」および「バッチの状態の解釈」を参照してください。
-
バッチ結果を取得します。
次の CSV 形式のバッチ結果のサンプルは、LastName 項目が欠落していたために、最後のレコードでエラーが発生したことを示しています。
1"Id","Success","Created","Error" 2"003D000000Q89kQIAR","true","true","" 3"003D000000Q89kRIAR","true","true","" 4"","false","false","REQUIRED_FIELD_MISSING:Required fields are missing: [LastName]:LastName --" - 各レコードの結果を解析します。
- 各結果レコードのレコード番号を追跡します。各結果レコードはバッチに含まれるレコードに対応してします。結果は、バッチ要求のレコードと同じ順序で返されます。結果のレコード番号を追跡することで、バッチ要求内で処理に失敗した関連��コードを特定できます。
- Success 項目の値が false の場合、行は正常に処理されていません。それ以外の場合は、レコードは正常に処理されているので、後続のレコードの結果を確認します。
- Error 列の内容を取得します。
- バッチ要求内の対応するレコードの内容をコンピュータ上のエラーファイルに書き込みます。Error 列の情報を追加します。送信したバッチ要求がキャッシュされていない場合は、Salesforce からバッチ要求を取得できます。
各レコードの結果を確認したら、エラーファイルにある各レコードを手動で修正し、修正済みのレコードを新しいバッチとして送信できます。その後、上記の手順を繰り返して、各レコードが正常に処理されたかどうかを確認します。