Basics of Apex Trigger for beginners

June 25, 2018

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” works, I’ll go step by step process of writing apex triggers.

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.

Example : before insert, after insert, before update, after update, before delete, after delete

Syntax of Trigger

syntax

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.

Use @future appropriately:

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

table

 

Try using sets and maps to handle bulk record processing.

code

 

TRIGGER BEST PRACTICE

  • Always use helper class in your trigger, and in helper class perform all your logic. like below

tbp

 

  • Don’t write more than 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.!!!