课程章节介绍
今天我们来讲一个概念,叫做TLR操作,它和事务的执行关系非常密切。
先来理解一下什么是事务。你可以把事务想象成一组操作,它们被当成一个整体来看待。就像你去银行转账,从A账户扣钱、再往B账户加钱,这两步要么都成功,要么都失败,如果中间出了问题,钱不会凭空消失,一切都会回到操作前的状态。
在Salesforce的Apex里,TLR操作就是在这样的事务中执行的。TLR代表的是Trigger、类方法、匿名代码块、Apex页面或者自定义Web服务方法,这些就是事务的边界。也就是说,事务从哪里开始、到哪里结束,由这些块来决定。
这个概念最重要的规则就是“全或无”。事务里所有的TLR操作,要么全部成功提交到数据库,要么只要中间任何一个地方发生错误,整个事务就会回滚,之前做过的所有数据修改都会被撤销,就像什么都没发生过一样。这保证了数据的完整性和一致性,不会出现一半成功一半失败的混乱情况。
那TLR支持哪些具体操作呢?你可以用它来插入新记录、更新已有的记录,还有直接更新记录的字段值——注意这里我说了两个“更新”,第一个是常规的update操作,第二个则特指用特定的语句去修改字段。另外还可以删除记录,甚至把已经放进回收站的记录再恢复出来,也就是取消删除。对于重复的记录,还可以进行合并;对于销售过程中的潜在客户,你可以用TLR去执行转换操作。
最后还要记住一个数量上的限制:当你调用一次插入、更新、删除或取消删除方法时,最多能传入10,000条sObject记录。如果超过这个数目,就需要分批处理,否则会触发限制错误。
总结一下,TLR操作在其所属的事务边界内,遵循“同生共死”的原则,支持多种数据操作,并且单次操作有记录条数上限。理解这点,对你写出安全稳健的Apex代码很有帮助。
关键词
Apex
Salesforce
Developer Guide