📘

Apex Triggers Explained Series

Jul 5, 2024

Apex Triggers Explained Series

Introduction

  • Topic: Apex Triggers
  • Format: Explained Series (30 videos)
  • Purpose: Understand, use cases (30 examples), decision making for triggers
  • Goals: Before/After context, use cases, decision process

Basics of Apex Triggers

  • Definition: Custom actions before/after changes to Salesforce records (insert, update, delete)
  • Example Scenarios: Notifications, emails, validation, complex logic handling
  • Record Handling: Bulk triggers (handle multiple records)
  • Limitations: Read-only in some contexts, insertion, updates, before/after events

Use Cases Where Triggers are Ideal

  • Complex Logic: Hard to manage with flow/process builders, custom handling
  • Before Events: Validation, additional values
  • Exception Handling: User-friendly error messages
  • Delete and Undelete: Handle deletion/restoration of records
  • Partial Success: Allows some transactions to succeed despite errors

Syntax and Creation

  • Key Components: Trigger keyword, trigger name, object, events
  • Events: Comma-separated list (before insert, after insert, before update, etc.)
  • Example: trigger AccountTrigger on Account (before insert, after update) { /* code */ }
  • Procedure: Developer Console -> New -> Apex Trigger -> Enter details

Context Variables

  • Types:
    • trigger.isInsert, trigger.isUpdate, trigger.isDelete
    • trigger.isBefore, trigger.isAfter
    • trigger.new, trigger.old, trigger.newMap, trigger.oldMap
    • trigger.size
  • Usage: Determine current context, handle different events, debugging

Order of Execution

  1. Load Record: Old values loaded, new values overwrite
  2. Validation: Checks for integrity, required fields, custom rules
  3. Before Triggers: Executes before triggers defined
  4. After Triggers: Executes after triggers defined
  5. Parent Updates: Updates roll-up summaries, cross-object rules
  6. Commit: Finalize transaction, execute asynchronous notifications

Best Practices

  • One Trigger Per Object: Avoid multiple triggers for same object/event for predictable order
  • Code Maintenance: Simplify debugging, upfront planning
  • Example: Use flags and context variables to segregate logic within a single trigger file

Deciding Between Before/After Triggers

  • Before Triggers: Set additional values, validate data, prevent bad data
  • After Triggers: Post-processing logic, create related records, send notifications

Context Grid

  • Purpose: Shows which context variables are available in different events
  • Values:
    • trigger.new not available in delete
    • trigger.old only for update/delete
    • trigger.newMap and trigger.oldMap available in specific contexts

Conclusion

  • Next Steps: Upcoming 30 use cases
  • Engagement: Encouragement to follow along, practice alongside
  • Resources: Grid preparation for understanding different contexts

See you in the next video with the first use case!