课程章节介绍
同学们,今天我们来聊聊Salesforce中的触发器(Trigger),特别是两个非常重要的上下文变量:`Trigger.new` 和 `Trigger.oldMap`。
首先,`Trigger.new` 是一个列表,它包含了触发器当前正在处理的所有新记录。这些记录可能是刚刚被插入的,或者是即将被更新的。你可以把它想象成一个“新鲜出炉”的记录集合。
然后,我们有 `Trigger.oldMap`,这是一个映射(Map),它包含了触发器处理之前记录的旧值。这个映射的键是记录的ID,值是对应的旧记录。你可以把它看作是“历史记录”的集合。
现在,这里有一个重要的点需要注意:`Trigger.oldMap` 中的记录顺序可能与 `Trigger.new` 中的顺序不同。这意味着,如果你在 `Trigger.new` 中遍历记录,并试图通过记录的ID在 `Trigger.oldMap` 中找到对应的旧记录,你可能会发现它们的顺序并不一致。
接下来,我们来看两种常见的触发器模式:
1. ,使用 `for` 循环遍历 `Trigger.new`,:在这种模式下,你会在 `Trigger.new` 上使用一个 `for` 循环,逐个处理每个记录。你可以在循环内部执行业务逻辑,比如验证数据、更新字段等。
2. ,使用 `Trigger.oldMap` 访问旧值,:在这种模式下,你会使用 `Trigger.oldMap` 来获取更新前的记录值。这对于比较新旧值、记录历史变化或者执行基于旧值的逻辑非常有用。
记住,理解这两个上下文变量的使用和它们之间的关系,对于编写有效的触发器逻辑至关重要。希望这些信息对你们有所帮助,如果有什么问题,随时提问哦!