access values from salesforce trigger context

You are currently viewing access values from salesforce trigger context
values from Trigger.old,Trigger.Old,Trigger.OldMap,Trigger.NewMap

When we create , update , deleted or undelete any record we get record information in context variable.

Learnings objective

  • Getting record Id ( any value )  from Trigger.new , Trigger.old, Trigger.newMap , Trigegr.oldMap
  • How to get values from Trigger context variables 

Quick Summery

For developers who are in hurry here is the short summery for you. Go throw the below code snippet to know how to get record Id from different trigger context in salesforce.

				
					// Getting record information from diffrent trigger context

    // Trigger.new 
    if(Trigger.isInsert && Trigger.isAfter) { 
        for(Account record:Trigger.new) {
            System.debug('Id from Trigger.new After Insert  '+ record.id);
        }
    }

    // Trigger.old
    if(Trigger.isUpdate && Trigger.isAfter) { 
        for(Account record:Trigger.old) {
            System.debug('Id from Trigger.old After Update   '+ record.id);
        }
    }

    // Trigger.old after delete 
    if(Trigger.isDelete && Trigger.isAfter) { 
        for(Account record:Trigger.old) {
            System.debug('Id from Trigger.old After Delete  '+ record.id);
        }
    }

    // Trigger.oldMap
    if(Trigger.isUpdate && Trigger.isAfter) { 
        Map<Id,Account> oldMap = new Map<Id,Account>();
        oldMap = Trigger.oldMap;
        List<Account> accIdLst = [Select Id from Account where Id IN : oldMap.keySet()];
        System.debug('Id from Trigger.oldMap after Update ' + accIdLst[0].Id);
    }

    // Trigger.newMap
    if(Trigger.isInsert && Trigger.isAfter) { 
        Map<Id,Account> newMap = new Map<Id,Account>();
        newMap = Trigger.newMap;
        List<Account> accIdLst = [Select Id from Account where Id IN : newMap.keySet()];
        System.debug('Id from Trigger.newMap after Insert ' + accIdLst[0].Id);
    }
				
			

Salesforce Trigger Context variables

  • isExecuting
  • isInsert
  • isUpdate
  • isDelete
  • isBefore
  • isAfter
  • isUndelete
  • new
  • newMap
  • old
  • oldMap
  • operationType
  • size

Let’s find out how to get specific value from Trigger.old , Trigger.old , Trigger.newMap and Trigger.oldMap.

Trigger.new

When we created new record we will get record information in Trigger.new . This code will get executed before the new record get inserted .

Trigger.new  on before insert

				
					if(Trigger.isInsert && Trigger.isBefore) { 
        for(Account record:Trigger.new) {
            System.debug('Id From  Trigger.new Before Insert  '+ record.id);
        }
    }
				
			
Note : record Id is generated once the record is get created successfully. So in case of before insert Id will be null.

Trigger.new  on after insert

				
					if(Trigger.isInsert && Trigger.isAfter) { 
        for(Account record:Trigger.new) {
            System.debug('Id From  Trigger.new After Insert  '+ record.id);
        }
    }
				
			

Trigger.new  on before update

				
					if(Trigger.isUpdate && Trigger.isBefore) { 
        for(Account record:Trigger.new) {
            System.debug('Id From  Trigger.new Before Update  '+ record.id);
        }
    }
				
			

Trigger.new  on after update

				
					if(Trigger.isUpdate && Trigger.isAfter) { 
        for(Account record:Trigger.new) {
            System.debug('Id From  Trigger.new After Update  '+ record.id);
        }
    }
				
			

Trigger.old

Trigger.old on before update

				
					if(Trigger.isUpdate && Trigger.isBefore) { 
        for(Account record:Trigger.old) {
            System.debug('Id From  Trigger.old Before Update  '+ record.id);
        }
    }
				
			

Trigger.old on after update

				
					if(Trigger.isUpdate && Trigger.isAfter) { 
        for(Account record:Trigger.old) {
            System.debug('Id From  Trigger.old After Update   '+ record.id);
        }
    }
				
			

Trigger.old on before delete

				
					if(Trigger.isDelete && Trigger.isBefore) { 
        for(Account record:Trigger.old) {
            System.debug('Id From  Trigger.old Before Delete  '+ record.id);
        }
    }
				
			

Trigger.old on after delete

				
					if(Trigger.isDelete && Trigger.isAfter) { 
        for(Account record:Trigger.old) {
            System.debug('Id From  Trigger.old After Delete  '+ record.id);
        }
    }
				
			

Trigger.newMap

In trigegr newmap we will get all information of sObject with map of Id’s. Trigger.newMap is only available in before update, after insert, after update and after undelete events.

				
					// Trigger.newMap
    if(Trigger.isInsert && Trigger.isAfter) { 
        Map<Id,Account> newMap = new Map<Id,Account>();
        newMap = Trigger.newMap;
        List<Account> accIdLst = [Select Id from Account where Id IN : newMap.keySet()];
        System.debug('Id from Trigger.newMap after Insert ' + accIdLst[0].Id);
    }
				
			

Trigger.oldMap

In trigegr oldmap we will get all information of sObject with map of Id’s. Trigger.oldMap is only available in update and delete events.

				
					// Trigger.oldMap
    if(Trigger.isUpdate && Trigger.isAfter) { 
        Map<Id,Account> oldMap = new Map<Id,Account>();
        oldMap = Trigger.oldMap;
        List<Account> accIdLst = [Select Id from Account where Id IN : oldMap.keySet()];
        System.debug('Id from Trigger.oldMap after Update ' + accIdLst[0].Id);
    }
				
			

Leave a Reply