制限
Bulk API に固有の制限を次に示します。
- バッチ割り当ての制限、全般的な制限、取り込みの制限、およびクエリの制限
- Bulk API の制限の大半は、「Bulk API および Bulk API 2.0 の制限および割り当て」に記載されています。このトピックでは、Bulk API に固有のその他の制限について説明します。
- API の使用制限
- Bulk API には、標準の API の使用制限が適用されます。使用制限の計算では、各 HTTP 要求が 1 コールと計数されます。
- Apex のトランザクション
- DML が Bulk API と共に実行されるときは、200 レコードの各チャンクが別々のトランザクションとして処理されます。Apex 制限についての詳細は、「トランザクション単位の Apex 制限」を参照してください。
- バッチのコンテンツ
- 各バッチには、単一オブジェクトのレコードから成る CSV ファイル、XML ファイル、または JSON ファイルが 1 つだけ含まれている必要があります。この制限が守られていない場合、バッチは処理されず、stateMessage が更新されます。オブジェクトレコードを正しい形式にするには、Enterprise WSDL を使用します。
- 圧縮
- 有効な圧縮形式の値は gzip のみです。圧縮は必須ではありませんが、実行することをお勧めします。なお、圧縮を行っても、文字数やバッチサイズの制限に影響はありません。
- ジョブの中止
- ジョブの中止は、適切な権限があればどのユーザーでも実行できます。ジョブの終了は、そのジョブを作成したユーザーのみが実行できます。
- ジョブの終了
- ジョブの終了は、そのジョブを作成したユーザーのみが実行できます。ジョブの中止は、適切な権限があればどのユーザーでも実行できます。
- ジョブのコンテンツ
- それぞれのジョブでは、1 つの処理と 1 つのオブジェクトを指定できます。このジョブに関連付けられたバッチには、1 つのオブジェクトのレコードが含まれます。必要に応じて逐次処理モードを指定することもできますが、このモードは、以前に送信した非同期ジョブでロックによる競合が発生した場合にのみ使用します。これは、Salesforce が推奨した場合にのみ使用してください。
- ジョブの外部 ID
- JobInfo では外部 ID 項目の値を編集することはできません。外部 ID 項目を指定した場合、実行される処理は必ず更新/挿入となります。作成や更新の処理で使用しようとするとエラーが生成されます。
- ジョブ履歴に表示されるジョブの状況
- 完了したジョブのジョブ状況とバッチ結果セットは、ジョブの完了後 7 日間保存され、それを過ぎると完全に削除されます。
- ジョブの状況の変更
- ジョブの状況を変更して POST の本文を送信する場合、指定できるのは status 項目の値のみとなります。operation 項目や entity 項目の値を指定した場合はエラーが発生します。
- ポータルユーザー
- カスタマーポータル、セルフサービスポータル、パートナーポータルなどのポータルユーザーは、「API の有効化」プロファイル権限を割り当てられていたとしても Bulk API にはアクセスできません。
- SOQL
-
Bulk API では、次のクエリはサポートされていません。
- GROUP BY、OFFSET、TYPEOF 句
- COUNT() などの集計関数
- GROUP BY 句内に日付関数がある (WHERE 句内の日付関数はサポートされます)
- 複合の住所項目または地理位置情報項目