本文主要是介绍SalesforceTrigger介绍,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Trigger介绍:
Trigger在salesforce记录更改以前或者以后自动执行,可以执行以下几种情况:insert,update,delete,merge,upsert,undelete,一个trigger可以同时处理200条records,所以后面所讲的new和old变量的返回类型为List类型。
有两种类型的trigger:
- Before trigger通常用于在他们被保存在数据库以前更新或者校验数据;
- After trigger通常用于保存后访问系统的字段(Id等).
trigger设计的思想为'One Trigger per Object',这种设计的好处详情查看上方第三个链接。所以一个Trigger可以同时设定很多种自动执行的触发器情况。
eg:trigger GoodsTrigger on Goods__c (before delete, before update) {}:声明一个trigger针对Goods__c这个Object,当执行delete,update操作以前执行此trigger。
trigger可以有以下的执行类别:before insert,before update,before delete,after insert,after update,after delete,after undelete.
注意:trigger代码块中不能包含static关键字。
Trigger类中封装了很多的上下文的变量,这些变量在开发中经常用到。
- isExecuting:当前Apex代码的上下文环境为trigger环境,而不是VF等则返回true,否则返回false;
- isInsert:当前操作是否为正在执行添加操作,是返回true,否则返回false;
- isUpdate:当前操作是否为正在执行修改操作,是返回true,否则返回false;
- isDelete:当前操作是否为正在执行删除操作,是返回true,否则返回false;
- isBefore:当前操作是否为在save以前操作,是返回true,否则返回false;
- isAfter:当前操作是否为在save以后操作,是返回true,否则返回false;
- isUndelete:当前操作是否为在回收箱中回复数据以后操作,是返回true,否则返回false;
- new:返回sObject的记录的最新的数据的列表;
- newMap:返回一个ID映射到最新的数据列表的Map集合;
- old:返回sObject的记录修改以前的数据的列表;
- oldMap:返回一个ID映射到修改以前的数据列表的Map集合;
- size:在触发器中调用的数据总数,包括new和old。
这里主要描述一下new,newMap,old以及oldMap,因为他们有使用限制。
- new只适用于执行insert和update的trigger操作时并且类型为before的时候,才可以使用new返回列表;
- newMap只适用于before update,after insert以及after update的trigger操作时,才可以使用newMap返回map集合;
- old以及oldMap只适用于update和delete操作时,才可以使用old以及oldMap。
这篇关于SalesforceTrigger介绍的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!