📜  Apex-触发器(1)

📅  最后修改于: 2023-12-03 14:59:21.300000             🧑  作者: Mango

Apex 触发器

Apex 触发器是一种自动化机制,用于在 Salesforce 平台上对记录进行操作时触发自定义业务逻辑。

触发器结构

Apex 触发器的结构如下:

trigger TriggerName on ObjectName (trigger_events) {
    // trigger logic
}

其中,TriggerName 是触发器的名称,ObjectName 是要触发触发器的对象。trigger_events 可以是以下任何值:

  • before insert
  • after insert
  • before update
  • after update
  • before delete
  • after delete
  • after undelete

这些事件与 Salesforce 平台上的记录操作相关联,触发器逻辑将在这些事件发生时自动运行。

触发器逻辑

触发器逻辑可以是任何有效的 Apex 代码,包括方法调用、循环、条件语句等。该代码必须可以编译并且符合 Salesforce 平台的最佳实践。

在触发器上下文中,可以通过 Trigger 类来访问有关触发器事件和上下文的信息。例如,可以使用 Trigger.old、Trigger.new 来访问先前的记录和将要插入或更新的记录。

trigger AccountTrigger on Account (before insert, before update) {
    for (Account a : Trigger.new) {
        if (a.Name == null) {
            a.Name = 'New Account';
        }
    }
}

上面的代码示例检查要插入或更新的记录中的 Name 字段是否为空。如果为空,则将 Name 设置为 "New Account"。

触发器流程

当创建、更新、删除、恢复或合并记录时,Apex 触发器启动自定义业务逻辑的执行。

触发器有两种类别:标准触发器和异步触发器。标准触发器同步执行,而异步触发器在某些情况下会异步执行。

Apex 触发器在以下情况下会异步执行:

  • 当使用 SOAP API、BULK API 或 REST API 对大量记录进行操作时。
  • 在遇到异常情况时,例如长时间运行的事务、系统错误等。
触发器最佳实践

以下是使用 Apex 触发器时的最佳实践:

  • 最大程度减少数据库操作和 DML 语句的使用。
  • 使用集合来处理记录、查询和更新。
  • 避免递归触发器和无限循环。
  • 使用 Trigger.isExecuting 和 Trigger.isUpdate 等方法来确定事件类型。
  • 编写可测试的代码,并使用单元测试来测试它们。
总结

Apex 触发器是一种强大的 Salesforce 开发工具,可以帮助开发人员自动化他们的业务逻辑。使用最佳实践编写的触发器可以提高开发人员的工作效率和代码质量。