我现在参与的项目,有一定的年头了,大家都往Trigger里面写东西,造成Trigger胖大,而有些需求完完全全不需要做Trigger动作。
自己的课题时就不需要。解决办法是
- 对该对象增加一个自定义field, 比如叫 triggerNotRunningFlag 的CheckBox。
- 对该项目Insert或者Update之前,把 triggerNotRunningFlag = true
- 在Trigger里面,如果Trigger.new的这个triggerNotRunningFlag=true,在Trigger里面triggerNotRunningFlag=false,然后直接return。后面的Trigger的代码就不再运行了。
如果有更好的办法,欢迎留言!
(本人是一直反对使用Trigger来解决问题的,宁愿通过使用共同Method,也不使用Trigger。没办法,据说这是Sales force的一大特色。还有roll-up,workflow等等又还会触发Trigger的动作,理解起来非常,你懂的。)