Salesforce知识点:Platform Event触发器与自定义对象触发器的区别

Platform Event触发器与自定义对象触发器的区别

在 Salesforce 中,Platform Event 触发器和自定义对象触发器均使用 Apex 触发器实现自动化,但由于事件驱动架构与基于记录的数据模型存在本质差异,二者在用途、行为和技术限制方面有显著区别。以下是详细对比:

1. 核心用途

  • 自定义对象触发器

    用于在自定义对象的记录被创建、更新、删除或恢复时自动执行操作。它们用于执行业务规则、验证数据或同步相关记录的变更(例如,当父账户被修改时更新关联的联系人)。

  • Platform Event 触发器

    用于响应在 Salesforce 事件总线上发布的事件。它们充当事件消息的 “监听器”,支持组件之间的异步通信(例如,订单创建后与 Slack 或 ERP 等外部系统集成)。

2. 触发时机与执行上下文

  • 自定义对象触发器

    • 同步或异步执行,取决于触发事件(例如,before insert同步运行,用于在保存前验证数据)。

    • 与记录操作的数据库事务绑定。如果事务失败(例如,违反验证规则),触发器的操作会被回滚。

    • 示例:Sales_Order__c自定义对象上的触发器在用户保存订单时立即运行,确保在插入前计算订单总额。

  • Platform Event 触发器

    • 始终异步执行,即使事件是在同步上下文中发布的。它们在独立事务中运行,与事件发布过程解耦。

    • 与发布事务无关。如果原始事务(例如,发布事件的过程)失败,事件及其触发器执行不会回滚(事件一旦发布便不可变)。

    • 示例:Order_Created__e(Platform Event)上的触发器在事件发布后运行,即使触发事件的订单记录后来被删除,该触发器仍会执行。

3. 数据访问与可修改性

  • 自定义对象触发器

    • 可通过触发器上下文(Trigger.NewTrigger.Old)直接访问记录的字段值

    • 能够修改正在处理的记录(例如,before update触发器可在字段保存到数据库前修改其值)。

    • 示例:Customer__c上的before insert触发器可根据公式自动填充Customer_Code__c字段。

  • Platform Event 触发器

    • 通过事件对象访问事件字段(例如,Order_Created__e触发器中的event.Order_Id__c)。

    • 无法修改事件本身——Platform Event 一旦发布便不可变。触发器只能读取事件数据并基于此执行操作(例如,调用外部 API)。

    • 示例:Platform Event 触发器可从事件中解析Order_Id__c,但无法修改事件的Amount__c字段。

4. 事务限制与批量处理行为

  • 自定义对象触发器

    • 严格的事务限制约束(例如,每个事务最多 100 次 SOQL 查询、150 次 DML 操作),因为它们与记录操作在同一上下文中运行。

    • 使用 Data Loader 或 API 批量操作时,按批量处理记录(每批最多 200 条)。触发器必须处理批量数据以避免超出限制。

  • Platform Event 触发器

    • 拥有独立的事务限制,与事件发布事务无关。这可防止发布过程因触发器失败而受影响。

    • 批次处理事件(每批最多 2000 个事件,可通过事件设置配置)。这种高批量处理能力支持高容量事件流(例如,物联网设备数据)。

5. 适用场景

  • 自定义对象触发器

    最适合以记录为中心的自动化

    • 执行数据验证(例如,确保Discount__c不超过 30%)。

    • 更新相关记录(例如,添加新订单时更新账户的Total_Orders__c)。

    • 在相关对象间同步数据(例如,将Account.BillingCity复制到其所有联系人)。

  • Platform Event 触发器

    最适合事件驱动的集成和解耦工作流

    • 向外部系统发送数据(例如,订单创建时通知 Slack)。

    • 触发异步流程(例如,订单确认后在后台生成 PDF 发票)。

    • 协调不相关系统间的操作(例如,Salesforce 订单提交后触发 ERP 中的库存检查)。

6. 错误处理

  • 自定义对象触发器

    错误(例如,未处理的异常)会终止整个事务,回滚记录操作。用户会立即看到错误消息(例如,“订单无法保存”)。

  • Platform Event 触发器

    错误不影响原始事件发布事务。失败的触发器执行会自动重试(可通过事件设置配置)或记录下来供人工审核。

    • 示例:如果 Platform Event 触发器调用 ERP API 失败,发布事件的订单记录仍会保存,触发器稍后会重试。

汇总表

特性 自定义对象触发器 Platform Event 触发器
用途执用以记录为中心的业务规则 异步响应事件消息
执行方式同步或异步 始终异步
数据可修改性可修改记录 无法修改事件(不可变)
事务关联与记录的事务绑定 与发布事务解耦
批处理大小最多 200 条记录 最多 2000 个事件
错误影响终止记录事务 自动重试;不影响发布过程

简言之,自定义对象触发器用于对记录数据执行规则,而 Platform Event 触发器用于实现跨系统通信—— 选择哪种触发器取决于目标是修改记录还是响应事件。

内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化训练,到执行分类及结果优化的完整流程,并介绍了精度评价通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置结果后处理环节,充分利用ENVI Modeler进行自动化建模参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
内容概要:本文系统阐述了企业新闻发稿在生成式引擎优化(GEO)时代下的全渠道策略效果评估体系,涵盖当前企业传播面临的预算、资源、内容效果评估四大挑战,并深入分析2025年新闻发稿行业五大趋势,包括AI驱动的智能化转型、精准化传播、首发内容价值提升、内容资产化及数据可视化。文章重点解析央媒、地方官媒、综合门户和自媒体四类媒体资源的特性、传播优势发稿策略,提出基于内容适配性、时间节奏、话题设计的策略制定方法,并构建涵盖品牌价值、销售转化GEO优化的多维评估框架。此外,结合“传声港”工具实操指南,提供AI智能投放、效果监测、自媒体管理舆情应对的全流程解决方案,并针对科技、消费、B2B、区域品牌四大行业推出定制化发稿方案。; 适合人群:企业市场/公关负责人、品牌传播管理者、数字营销从业者及中小企业决策者,具备一定媒体传播经验并希望提升发稿效率ROI的专业人士。; 使用场景及目标:①制定科学的新闻发稿策略,实现从“流量思维”向“价值思维”转型;②构建央媒定调、门户扩散、自媒体互动的立体化传播矩阵;③利用AI工具实现精准投放GEO优化,提升品牌在AI搜索中的权威性可见性;④通过数据驱动评估体系量化品牌影响力销售转化效果。; 阅读建议:建议结合文中提供的实操清单、案例分析工具指南进行系统学习,重点关注媒体适配性策略GEO评估指标,在实际发稿中分阶段试点“AI+全渠道”组合策略,并定期复盘优化,以实现品牌传播的长期复利效应。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liquad Li 李庆军

您的鼓励是我创作的动力哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值