ApexAdvanceddmltransactionspartial-success
Architect transaction boundaries and partial success DML
Real World Scenario
Bulk import must insert 500 related records where 20 fail validation but 480 should commit for manual correction later.
Expected Answer
• Database.insert(records, false) for partial success collecting Database.Error per row
• Log failed rows with error messages to staging object for user remediation
• AllOrNone=false implications on trigger side effects for partial batches
• Savepoints for explicit rollback of sub-operations within single transaction
• Separate validation pass in before trigger vs relying on DML error collection
• UI surfacing partial success counts and downloadable error CSV
• Retry job for corrected failed rows without reprocessing successes
Follow-Up Questions & Answers
Click to expand — each follow-up includes a direct, interview-ready answer
Direct answer: Database.insert(records, false) for partial success collecting Database.Error per row Also consider: Log failed rows with error messages to staging object for user remediation In practice: AllOrNone=false implications on trigger side effects for partial batches Optimize for scale and operational observability.
Architect Perspective
Partial success is UX and data integrity contract—document trigger behavior when half the batch commits.