Salesforce里的trigger里的变量

来源:互联网 发布:数据库报表开发 编辑:程序博客网 时间:2024/04/25 04:15

虽然知道trigger的一些机制,但是较真的时候总是拿不准,所以自己总结一下,下一次可以作为参考。

Insert
trigger的执行次数是:1
在before trigger 中
Trigger.new: 只有被更新的字段,owner id是有值的,其他字段都为Null
Trigger.old: null
Trigger.newMap: null
Trigger.oldMap: null
在after trigger 中
Trigger.new: 只有被更新的字段,owner id和ID是有值的,没有更新的字段都为Null
Trigger.old: null
Trigger.newMap: ID和Trigger.new的map
Trigger.oldMap: null




Update
trigger的执行次数是:1
在before和after trigger中
Trigger.new: 该Object的所有的字段的值都有,但是被更新的字段中会是新的值
Trigger.old: 该Object的所有的字段的值都有,被更新的字段中是更新前的值
Trigger.newMap: ID和Trigger.new的map
Trigger.oldMap: ID和Trigger.old的map

Delete
trigger的执行次数是:1
在before和after trigger中
Trigger.new: Null
Trigger.old: 该Object的所有的字段的值都有
Trigger.newMap: Null
Trigger.oldMap: ID和Trigger.old的map


Undelete
trigger的执行次数是:1
在before trigger 中
Trigger.new: 该Object的所有的字段的值都有
Trigger.old: null
Trigger.newMap: ID和Trigger.new的map
Trigger.oldMap: null
在after trigger 不执行


Upsert
trigger的执行次数是:2, insert执行一次,update执行一次
其他的和insert,update的一样
upsert triggers fire both before and after insert or before and after update triggers as appropriate.


Merge
Merge events do not fire their own trigger events. Instead, they fire delete and update events
Deletion of losing records
Update of the winning record
The after undelete trigger event only fires for the following objects(v33.0):
• Account
• Asset
• Campaign
• Case
• Contact
• ContentDocument
• Contract
• Custom objects
• Event
• Lead
• Opportunity
• Product
• Solution
• Task
0 0