The basic logic of trigger is too huge to cover, I have tried a bit to make everyone understand that how this Apex trigger, a "pain in ass" works, I'll go step by step process of writing apex triggers.
What is Apex Triggers ?
A Trigger is Apex code that executes before or after the following types of operations:
- insert
- update
- delete
- merge
- upsert
- undelete
Types of Apex Triggers
- Before Triggers: Before triggers can be used to update or validate record values before they are saved to the database.
- After Triggers: After triggers can be used to access field values that are set by the database (such as a record's Id or last Updated field), and to affect changes in other records, such as logging into an audit table or firing asynchronous events with a queue.
Syntax of Trigger
Things to keep in mind while writing apex trigger
- Bulkify your Code : Use Looping through Trigger’s collections variables instead of process through particular indexing.
- All triggers are bulk triggers by default, and can process multiple records at a time.
- Bulk triggers can handle both single record updates and bulk operations like: Data import, Force.com Bulk API calls.
- Bulkify your Code : Use Looping through Trigger’s collections variables instead of process through particular indexing.
- Avoid SOQL Queries or DML statements inside FOR Loops: An individual Apex request gets a maximum of 100 SOQL queries before exceeding that governor limit.
- Bulkify your Helper Methods: if a trigger uses some Apex methods written in a helper class, it's important that those shared Apex methods are properly designed to handle bulk records. These methods should be written to be invoked with a set of records, especially if the method has a SOQL query or DML operation.
Here is a list of governor limits specific to the @future annotation:
- No more than 10 method calls per Apex invocation.
- No more than 200 method calls per Salesforce license per 24 hours.
- The parameters specified must be primitive datatypes, arrays of primitive datatypes, or collections of primitive datatypes.
- Methods with the future annotation cannot take sObjects or objects as arguments.
- Methods with the future annotation cannot be used in Visualforce.
Use efficient collection variable of apex triggers
Try using sets and maps to handle bulk record processing.
TRIGGER BEST PRACTICE
- Don't write more then one trigger on an object, try to add up all your new trigger in a single trigger using different-different helper classes to read more click Order of Execution
There is allot to take care of when writing apex triggers, but I found these to helpful.
Hope this helps
Happy coding.!!!
Thanks for easy explanation....
ReplyDeleteThank you Rakesh
ReplyDeleteAdd some code where Trigger design pattern can be made and used.
ReplyDelete