Salesforce入门教程(中文)-007 Apex trigger

1.使用Apex触发器

Apex触发器使您能够在Salesforce中记录的事件之前或之后执行自定义操作,例如插入、更新或删除。
就像数据库系统支持触发器一样,Apex为管理记录提供了触发器支持。

通常,使用触发器根据特定条件执行操作,修改相关记录或限制某些操作的发生。
您可以使用触发器执行Apex中可以执行的任何操作,包括执行SOQL和DML或调用自定义Apex方法。

使用触发器执行无法使用Salesforce用户界面中的点击工具完成的任务。
例如,如果验证字段值或更新记录上的字段,请改用验证规则和工作流规则。

可以为Apex标准对象定义触发器,例如帐户或联系人、自定义对象和一些标准子对象。
默认情况下,触发器在创建时处于活动状态。
当指定的数据库事件发生时,Salesforce会自动触发活动触发器。

2.触发器语法

触发器定义的语法与类定义的语法不同。
触发器定义以触发器关键字开始。
随后是触发器的名称、与触发器关联的Salesforce对象以及触发条件。

触发器具有以下语法:
trigger TriggerName on ObjectName (trigger_events) {
   code_block
}

要在插入、更新、删除和取消删除操作之前或之后执行触发器,请在逗号分隔的列表中指定多个触发器事件。
可以指定的事件有:
before insert
before update
before delete
after insert
after update
after delete
after undelete

两种触发器:Before触发器、After触发器
Before触发器用于在记录值保存到数据库之前更新或验证记录值。
After触发器用于访问系统设置的字段值(例如记录的Id或LastModifiedDate字段),并影响其他记录中的更改。
触发after触发器的记录是只读的。

3.使用上下文变量

要访问导致触发的记录,请使用上下文变量。
例如,Trigger.New包含插入或更新触发器中插入的所有记录。
Trigger.Old提供更新触发器中更新之前的旧版本Sobject,或删除触发器中已删除Sobject的列表。
触发器可以在插入一条记录时触发,或者在通过API或Apex批量插入多条记录时触发。
因此,上下文变量(如Trigger.New)只能包含一条记录或多条记录。
您可以迭代Trigger.New以获取每个单独的sObject。

此示例是HelloWorldTrigger示例触发器的修改版本。
它在for循环中迭代每个帐户,并更新每个帐户的Description字段。

trigger HelloWorldTrigger on Account (before insert) {
    for(Account a : Trigger.New) {
        a.Description = 'New description';
    }   
}

在触发器完成执行后,系统保存触发前触发器的记录。
您可以修改触发器中的记录,而无需显式调用DML insert或update操作。
如果对这些记录执行DML语句,则会出现错误。

其他一些上下文变量返回一个布尔值,以指示触发器是由于更新还是其他事件触发的。
当触发器组合多个事件时&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一秒变桌子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值