2.6 Trigger
Salesforce中触发器的使用,能够帮助开发人员在用户保存、修改、删除、恢复数据的时候,执行一些Apex代码;在传统开发过程中,数据库中触发器的编写容易引发一些意想不到的问题,所以通常会避开直接编写触发器,更常用的做法是将要在触发器写的逻辑写到Controller层;那么在Salesforce开发过程中,为什么会提到触发器开发呢?原因在于Salesforce的Model层与Controller层是集成的,比如用户点击保存按钮(系统标准按钮)后,开发人员无法获取到从保存开始到数据保存到数据库的上下文,这时候我们想在保存某条记录的时候,需要做一些逻辑判断,如果没有触发器,这些需求是没法实现的。接下来我们来讲讲触发器开发。
2.6.1 Trigger类型
Trigger大体可以分为两类:
1、Before Triggers,Before Triggers是在DML(insert、update、delete、merge、upsert、undelete)数据之前,也就是说数据还没有Commit到数据库,我们可以在这个时间点编写Apex,常用的场景有验证数据合法性、验证业务场景等。
注意在Before Triggers中如果删除或者修改触发该触发器的当前记录,系统会抛异常。
2、After Triggers,After Trigger是在DML数据之后,指的是数据库数据已经发生变化后,执行相应的Apex,常用的场景有关联对象更新、调用异步方法等。
我们在Salesforce写的Trigger默认是批处理的