Salesforce触发器:自动化业务逻辑的核心工具详解
在Salesforce的生态系统中,触发器(Trigger)是实现业务逻辑自动化的核心组件之一。它能够在特定数据操作(如创建、修改、删除记录)发生时,自动执行预设的代码逻辑,无需人工干预,从而确保数据一致性、简化业务流程、提升运营效率。本文将从触发器的基础概念、核心特性、开发规范到实战案例,全面解析Salesforce触发器的应用与实践,并重点对比其与流构建器(Flow Builder)的差异,帮助开发者选择更适配的自动化工具。
一、什么是Salesforce触发器?
Salesforce触发器是一种Apex代码片段,与特定的标准对象(如Account、Contact)或自定义对象绑定,当用户对该对象执行数据操作事件(如插入、更新、删除)时,触发器会被自动“触发”并执行代码逻辑。
1. 触发器的核心作用
- 数据校验:阻止不符合业务规则的数据操作(如禁止创建金额为负的Opportunity)。
- 数据同步:自动同步关联对象的数据(如创建Account时,自动生成关联的Contact记录)。
- 业务逻辑自动化:替代手动操作(如当Opportunity状态改为“Closed Won”时,自动创建后续的Contract记录)。
- 跨系统集成:触发后调用外部API(如同步数据到ERP系统)。
2. 触发器的两种类型
根据触发时机的不同,Salesforce触发器分为两类,适用场景差异显著:
| 类型 | 触发时机 | 核心特点 | 适用场景 |
|---|---|---|---|
| Before Trigger(前置触发器) | 数据操作(如插入、更新)执行前触发 | 可修改当前操作的记录字段值(无需DML语句),无法获取记录的ID(插入时ID未生成) | 数据校验、字段默认值赋值、数据格式修正 |
| After Trigger(后置触发器) | 数据操作执行后触发 | 无法修改当前操作的记录(需修改需额外DML),可获取记录的ID(插入后ID已生成) | 关联记录创建、跨对象数据同步、调用外部API |
3. 支持的触发事件
触发器仅对指定的“数据操作事件”响应,Salesforce支持的核心事件如下:
- DML事件:
insert(插入)、update(更新)、delete(删除)、undelete(恢复回收站记录)。 - 批量操作支持:触发器默认支持批量操作(如导入100条Account时,触发器会一次性处理所有记录,需注意批量处理逻辑)。
二、触发器的核心概念与语法
要开发触发器,需先理解其基础结构、上下文变量和语法规则,这是避免常见错误(如触发循环、性能问题)的关键。
1. 触发器的基础语法结构
一个标准的触发器包含“触发对象、触发时机、触发事件、代码逻辑”四部分,示例如下(以Account对象的Before Insert触发器为例):
// 触发器声明:对象(Account) + 时机(Before) + 事件(Insert)
trigger AccountBeforeInsert on Account (before insert) {
// 代码逻辑:遍历待插入的Account记录,赋值默认行业
for (Account acc : Trigger.New) {
// 若行业为空,默认设为“信息技术”
if (acc.Industry == null) {
acc.Industry = 'Information Technology';
}
}
}
2. 关键上下文变量(Trigger变量)
Salesforce提供了Trigger内置类,包含多个上下文变量,用于获取触发时的记录数据、操作类型等信息,核心变量如下:
| 变量名 | 类型 | 描述 | 适用触发器类型 |
|---|---|---|---|
Trig |

最低0.47元/天 解锁文章
1009

被折叠的 条评论
为什么被折叠?



