These variables are contained in the System.Trigger class.
* Recycle Bin = Available on home tab in classic mode
Variable | Usage |
---|---|
isExecuting | Returns true if the current context for the Apex code is a trigger, not a Visualforce page, a Web service, or an executeanonymous() API call. |
isInsert | Returns true if this trigger was fired due to an insert operation, from the Salesforce user interface, Apex, or the API. |
isUpdate | Returns true if this trigger was fired due to an update operation, from the Salesforce user interface, Apex, or the API. |
isDelete | Returns true if this trigger was fired due to a delete operation, from the Salesforce user interface, Apex, or the API. |
isBefore | Returns true if this trigger was fired before any record was saved. |
isAfter | Returns true if this trigger was fired after all records were saved. |
isUndelete* | Returns true if this trigger was fired after a record is recovered from the Recycle Bin. This recovery can occur after an undelete operation from the Salesforce user interface, Apex, or the API. |
new | Returns a list of the new versions of the sObject records.
This sObject list is only available in insert, update, and undelete triggers, and the
records can only be modified in before triggers.
|
newMap | A map of IDs to the new versions of the sObject records.
This map is only available in before update, after insert, after update, and
after undelete triggers.
|
old | Returns a list of the old versions of the sObject records.
This sObject list is only available in update and delete triggers.
|
oldMap | A map of IDs to the old versions of the sObject records.
This map is only available in update and delete triggers.
|
operationType | Returns an enum of type System.TriggerOperation corresponding to the current operation.
Possible values of the System.TriggerOperation enum are: BEFORE_INSERT, BEFORE_UPDATE, BEFORE_DELETE,AFTER_INSERT, AFTER_UPDATE,
AFTER_DELETE, and AFTER_UNDELETE. If you vary your programming logic based on
different trigger types, consider using the switch statement with different permutations of unique trigger execution enum states.
|
size | The total number of records in a trigger invocation, both old and new. |
Best Practice :
- Always use helper apex class to write the implementation or business logic.
- Use Test class to cover Trigger not to helper class, helper class will be automatically covered through that.
- Always use above context variable.
An Example :
Trigger:
Trigger exampleTrigger on Account (after insert) {
if
(Trigger.isInsert) {
ExampleTriggerHelper.afterInsertLogic(Trigger.new);
}
}
Class:
public with sharing class ExampleTriggerHelper{
public static void afterInsertLogic(List<Account> newAccountsList){
Contact[] cons = [SELECT LastName FROM Contact WHERE AccountId IN :newAccountsList];
//implement your business logic here
} }
Comments
Post a Comment