You need to sign in to do that
Don't have an account?
sonali verma
trigger.old
Hello
I want to understand critical differences between trigger.new & trigger.old.
trigger.old used in which events?
I see lot of documentation but any specific scenario will be helpful
thanks
sonali
I want to understand critical differences between trigger.new & trigger.old.
trigger.old used in which events?
I see lot of documentation but any specific scenario will be helpful
thanks
sonali
basically the Event would be u Specifing as Argument
where the trigger events will be before update,after update.
trigger.new will holds the NEW Values(Data) for the Sobject fields you have Enterted.
trigger.old will HOLDS the OLD Values(Data) for the Sobject fields which already exist(trigger.old will be Draft ).
Consider u were trying to wtrite a Trigger for Order .
Criteria :when Order status changes from Draft to Activated.
1.Trigger.New will Holds the Sobject values for Draft Order record.
trigger.new[i].Status will Activated
2.Trigger.OLD will Holds the Sobject values for Draft Order record.
trigger.OLD[i].Status will DRAFT.
trigger.OLD[i].Status will NULL if you were creating record for the first time and if Default is not specified.
Thanks
D Naveen rahul.
https://help.salesforce.com/apex/HTViewSolution?id=000003789&language=en_US (https://help.salesforce.com/apex/HTViewSolution?id=000003789&language=en_US)
Please check below post for Trigger Context Variables
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers_context_variables.htm
isExecuting Returns true if the current context for the Apex code is a trigger, not a Visualforce page, a Web service, or anexecuteanonymous() API call.
isInsert Returns true if this trigger was fired due to an insert operation, from the Salesforce user interface, Apex, or theAPI.
isUpdate Returns true if this trigger was fired due to an update operation, from the Salesforce user interface, Apex, or theAPI.
isDelete Returns true if this trigger was fired due to a delete operation, from the Salesforce user interface, Apex, or theAPI.
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 (that is, 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.
newMap A map of IDs to the new versions of the sObject records.
old Returns a list of the old versions of the sObject records.
Note that this sObject list is only available in update and delete triggers.
oldMap A map of IDs to the old versions of the sObject records.
size The total number of records in a trigger invocation, both old and new.
Comparing old and new values in a trigger
http://www.sfdc99.com/2014/02/25/comparing-old-and-new-values-in-a-trigger/
Trigger.new : Returns a list of the new versions of the sObject records. Note that this sObject list is only available in insert andupdate triggers, and the records can only be modified in before triggers.
Trigger.old : Returns a list of the old versions of the sObject records. Note that this sObject list is only available in update anddelete triggers.
Please let us know if this will help you
Thanks
AMit Chaudhary
I am clear with the above.
But pls clarify.
a) crucial differences between Trigger.oldmap and trigger.newmap.
which scneario we use
b) can I use before delete evnt in trigger.oldmap
thanks
sonali
a) crucial differences between Trigger.oldmap and trigger.newmap.
which scneario we use
OldMap and NewMap is same like Trigger.Old and Trigger.New with key value paire
In Trigger.Old you will get list of Sobject but on Trigger.OldMap you will get Map<ID,Sobject>.
b) can I use before delete evnt in trigger.oldmap
Yes you can use the Trigger.OldMap and Trigger.Old in before delete.
In trigger.oldmap we can use afterUpdate event.
so by this time RecordID is available.
Then why an update to the original object using DML statement would cause recursion / or hit governor limit:?
thanks
sonali
http://amitsalesforce.blogspot.in/2015/06/trigger-best-practices-sample-trigger.html
Never update the same record in After Update in that case your trigger can become the recursive which can raise the 101 SOQL issue
But that one you can stop by static variable. Please check post for same.
http://amitsalesforce.blogspot.in/2015/03/how-to-stop-recursive-trigger-in.html
Please let us know if this will help you
Thanks,
Amit Chaudhary