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.
ReplyDeleteEA0BBDB2
ReplyDeleteKaraman
Artvin
Kütahya
Manisa
Ağrı
Aksaray
Gümüşhane
Kayseri
Amasya