9 - Triggers Part 1
In Salesforce, triggers are pieces of Apex code that automatically execute before or after specific database operations, such as when a record is created, updated, deleted, or restored. Triggers allow developers to define custom logic that performs actions in response to these changes in the Salesforce database.
Types of Triggers
Before Triggers
- Executed before a record is saved to the database.
- Commonly used for validation and updating fields on records before they are saved.
After Triggers
- Executed after a record is saved to the database.
- Used for actions that depend on the record ID or related records, such as creating related records, sending emails, or updating other records.
Trigger Events
Triggers can be set to execute on various events, such as:
- Before Insert: Runs before a new record is inserted.
- Before Update: Runs before an existing record is updated.
- Before Delete: Runs before a record is deleted.
- After Insert: Runs after a new record is inserted.
- After Update: Runs after an existing record is updated.(HINT: The record over which this trigger is set that is READ-ONLY in this case so logic to change this record will throw exception SOLUTION : Use isBefore Trigger context and add beforeUpdate )
- After Delete: Runs after a record is deleted.
- After Undelete: Runs after a record is undeleted (restored from the Recycle Bin).
Example Use Cases for Triggers
- Automatically create related records after a record is inserted.
- Enforce complex validation rules that can’t be handled by standard validation.
- Sync data between related objects or with external systems.
- Update fields on related records when a record changes (e.g., updating all child records when a parent record is modified).
Example of a Basic Trigger
Here's a simple example of a trigger that automatically sets a default value on a custom field when an Opportunity record is created:
Key Points
- Trigger Context Variables: Triggers have special context variables (like
Trigger.new,Trigger.old) to access records affected by the event. - Order of Execution: Multiple triggers can fire on a single event , Order of execution is not gauranteed.
- Governor Limits: Since triggers run in the Salesforce environment, they must follow Salesforce's governor limits, like limits on the number of SOQL queries and DML operations. They Share the limits in case multiple .
- Salesforce Best Practice is to have 1 trigger per Object .
Triggers provide powerful, custom functionality but require careful design to maintain performance and avoid conflicts with other processes.
Comments
Post a Comment