Triggers — Chatter & Knowledge Articles

DEX455 - 运行 Apex:匿名块、触发器与执行顺序完全指南

📄 第 234 页 🎬 视频课程

课程章节介绍

同学们,我们这节课来看一下,在使用 Chatter 触发器时需要注意的几个关键点。 首先,关于 Chatter 的插入触发器,它并不是对所有动态类型都生效的。只有特定的 FeedItem 类型才会触发插入触发器,比如文本帖子、链接帖子这些常见的类型。而有些通过系统自动生成的动态,可能就不会激活你的触发器代码,这一点在做开发时要特别留意。 接下来是附件的问题。Chatter 中的附件记录——也就是 FeedAttachment,是不能直接通过 Apex 更新的,我们只能通过 SOQL 去查询它。而且,如果你想把一个文件关联到一条动态上,是有顺序的:一定要先成功插入 FeedItem 记录,然后再去创建对应的 FeedAttachment 记录,否则会出错。 还有一点很容易被忽略,就是知识文章的发布和存档操作,并不会触发 Chatter 触发器。也就是说,即便你为 FeedItem 写了很完善的触发逻辑,当一篇文章被发布时,系统不会去执行这些代码。所以千万不要依赖触发器来处理知识文章相关的 Chatter 更新。 最后,我们再来看一类常见的字段修改限制。有一些对象上的字段,是没办法在 before 触发器中随意修改的,因为它们的值是由系统

关键词

Apex Salesforce Developer Guide