要求の処理方法
ジョブの状況
Bulk API 2.0 でジョブ要求を作成すると、Salesforce は、ジョブの進行状況や結果を示すジョブ「状態」を提供します。手動でジョブの状況を確認することも、Salesforce UI 内にジョブの状況を表示することもできます。[設定] から [クイック検索] ボックスに「一括データ読み込みジョブ」と入力し、[一括データ読み込みジョブ] を選択します。次の表は、ジョブの作成時および処理時の Bulk API 2.0 ジョブの状況を要約したものです。
| ジョブのフェーズ | 状態 | 説明 |
|---|---|---|
| 作成 | Open | 取得ジョブが作成され、データアップロードを開始できる状態です。 |
| 作成 | UploadComplete |
(取得) すべてのジョブデータがアップロードされました。ジョブがキューに追加され、処理の準備が整っています。 (クエリ) Salesforce がクエリジョブをキューに追加しました。 |
| 処理 | InProgress | ジョブは Salesforce によって処理中です。操作には、ジョブデータの自動最適一括処理またはチャンク化とジョブ操作の処理が含まれます。 |
| 結果 | JobComplete | ジョブが処理されました。 |
| 結果 | Failed | ジョブを正常に処理できませんでした。 |
| 結果 | Aborted | ジョブは、ジョブ作成者、または「データインテグレーションの管理」権限を持つユーザによってキャンセルされました。 |
取得ジョブ
取得ジョブの処理時、Salesforce Bulk API 2.0 は、パフォーマンス向上のため、ジョブのデータを複数の「バッチ」に自動的に分割します。
1 日につき 150,000,000 レコードを上限として、ジョブデータから 10,000 レコードごとに別個のバッチが作成されます。ジョブデータの処理中に制限を超えた場合、残りのデータは処理されません。取得ジョブは失敗したとマークされます。
ジョブが失敗する場合があるのと同様、個々のバッチも失敗する場合があります。Salesforce がバッチ内のすべてのレコードを 10 分以内に処理できない場合は、バッチが失敗します。Salesforce は失敗したバッチの処理を最大 10 回まで自動的に再試行します。10 回再試行してもバッチを処理できなかった場合、その取得ジョブ全体の状況が Failed に変わり、残りのジョブデータは処理されません。
失敗が発生した場合は、新しい取得ジョブを作成して、処理されなかったレコードを処理します。
処理されなかったレコードと発生したエラーを確認するには、失敗レコードの結果および未処理レコードの結果リソースを使用します。
クエリジョブ
Bulk API 2.0 クエリジョブでは、SOQL クエリを非同期で処理できます。バッチを手動で設定する代わりに Bulk API 2.0 クエリジョブは、クエリジョブを小さなチャンクに分割するための最良の方法を自動的に決定します。これにより、失敗やタイムアウトが回避されます。再試行は API が自動的に処理します。API の再試行が 15 回を超えたというメッセージを受け取った場合は、検索条件を適用してもう一度実行してください。クエリジョブの結果を取得するときに、レスポンスボディは常に圧縮されています。
Bulk API では、PK Chunking を使用せずにバッチを作成すると 1 つのバッチのみが作成されます。PK Chunking を有効化してバッチを作成する場合、バッチはチャンクのレコード数に基づいて分割されます。レコード数の範囲は 100,000 から 250,000 までです。
Bulk API 2.0 は次のオブジェクトを持つ大きなクエリジョブをチャンクするように最適化されています。
- Account
- AccountContactRelation
- AccountTeamMember
- AiVisitSummary
- Asset
- AssignedResource
- B2BMktActivity
- B2BMktProspect
- Campaign
- CampaignMember
- CandidateAnswer
- Case
- CaseArticle
- CaseComment
- ChangeRequest
- Claim
- ClaimParticipant
- Contact
- ContentDistribution
- ContentDocument
- ContentVersion
- ContractLineItem
- ConversationDefinitionEventLog
- ConversationEntry
- ConversationReason
- ConversationReasonExcerpt
- ConversationReasonGroup
- CustomerProperty
- EinsteinAnswerFeedback
- EmailMessage
- EngagementScore
- Event
- EventRelation
- FeedItem
- Incident
- Individual
- InsurancePolicy
- InsurancePolicyAsset
- InsurancePolicyParticipant
- Lead
- LeadInsight
- LinkedArticle
- LiveChatTranscript
- LoginHistory
- LoyaltyAggrPointExprLedger
- LoyaltyLedger
- LoyaltyMemberCurrency
- LoyaltyMemberTier
- LoyaltyPartnerProduct
- LoyaltyProgramMbrPromotion
- LoyaltyProgramMember
- LoyaltyProgramPartner
- LoyaltyProgramPartnerLedger
- MlRetrainingFeedback
- Note
- ObjectTerritory2Association
- Opportunity
- OpportunityContactRole
- OpportunityHistory
- OpportunityLineItem
- OpportunitySplit
- OpportunityTeamMember
- Order
- OrderItem
- Pricebook2
- PricebookEntry
- Problem
- Product2
- ProductConsumed
- ProductRequired
- クイックテキスト見積
- QuoteLineItem
- ReplyText
- ScoreIntelligence
- ServiceContract ToDo
- TaskRelation
- TermDocumentFrequency
- TransactionJournal
- User
- UserRole
- VoiceCall
- VoiceCallRecording
- Voucher
- WebCart
- WorkloadUnit
- WorkOrder
- WorkOrderLineItem
- WorkPlan
- WorkPlanTemplate
この最適化には、カスタムオブジェクトと、標準オブジ��クトをサポートする共有テーブルおよび履歴テーブルも含まれます。