Apex 中插入更新数据的事件执行顺序
在使用 Apex 代码插入或更新数据的时候,若干事件会被按顺序执行。了解这些顺序可以提高调试程序的效率,也可以避免不必要的错误。
可以参考官方文档。
事件的执行顺序
- 从数据库中读取要更新的数据记录或初始化要插入的数据
- 更新相关的字段值
- 如果插入或更新的请求来自标准的 Salesforce 新建或编辑页面,检查相关的要求,比如字段是否必须、字段的长度是否符合定义、字段的格式是否合理
- 如果插入或更新的请求来自 Apex 代码或 API,则只检查外键关联是否合理
- 执行所有的 before 类型的触发器代码。注意,当一个操作有不同的触发器逻辑,则它们的执行顺序是不确定的。比如对于“客户”的记录有两个 before insert 类型的触发器逻辑,则任一逻辑都可能先执行
- 再次执行第3步所提到的检查
- 执行系统中定义的“重复规则”(Duplicate Rules)
- 将更新的数据保存到数据库,但是暂时不提交
- 执行所有的 after 类型的触发器代码
- 执行“分配规则”(Assignment Rules)
- 执行“自动回复规则”(Auto-response Rules)
- 执行“工作流规则”(Workflow Rules)
- 如果“工作流规则”中对于该记录进行了更新,则再次更新该记录。然后,再次执行一次第3步中的检查,和 before 和 after 类型的触发器代码。其他的自定义验证规则以及第7、10、11步中所定义的规则则不会执行
- 执行相关的流程(Process)
- 执行“升级规则”(Escalation Rules)
- 执行“权利过程”(Entitlement Process)
- 对与该记录相关的记录进行更新,比如“累计汇总”(Roll-Up Summary)字段的值
- 计算记录的分享规则结果
- 将第8步中保存的数据提交到数据库,真正的保存起来
- 执行其他的事件,比如发送电子邮件等
转载于:https://www.cnblogs.com/chengcheng0148/p/apex_data_trigger_execution_order.html
Apex 中插入更新数据的事件执行顺序相关推荐
- 向mysql表中插入/更新数据时自动添加创建时间/更新时间
目录 处理方式一:修改数据库字段类型 测试插入数据: 测试更新数据: 处理方式二:配置生成策略 [MySQL版本] 8.x 处理方式一:修改数据库字段类型 自动添加创建时间: 将字段类型设置为TIME ...
- php 重复写入数据,完美解决Thinkphp3.2中插入相同数据的问题
问题描述 今天在使用TP3.2插入数据的时候,为了避免插入相同的数据(所谓相同的数据,其主键相同或者是唯一索引的字段相同),我创建的索引如下图,主键索引为自增字段,不可能出现重复,即唯一索引可能会出现 ...
- asp.net中page对象生命周期和各事件执行顺序
asp.net页面事件执行顺序: 一.初始化部分: 1.构造函数:创建page类的一个实例,初始化page类的属性. 2.AddParsedSubObject函数: protected virture ...
- C语言:向一个有序数组中插入一个数据,并保持数组的有序性。
C语言:向一个有序数组中插入一个数据,保持数组的有序性. #include <stdio.h> //向一个有序数组中插入一个元素,重新实现有序,并输出. int main() {//注意数 ...
- mybatis中显示更新数据成功 ,控制台显示成功,数据库数据却没有修改
@mybatis中显示更新数据成功 ,控制台显示成功,数据库数据却没有修改 问题分析 查看控制台输出语句,控制台会打印更新方法的日志,显示一条更新语句成功等信息.但是查看数据库是没有任何变化的. 原因 ...
- c语言数组中插入新数据
数组插入数据 在数组的应用中,我们有时会向数组中插入一个数据,而且不打破原来的排序规律,其实数组中的插入数据,就是数据的比较和移动:如果想要弄懂这些方法最好拿笔比划以下,或者debug一下,了解其中的 ...
- 使用itextpdf在pdf模板中插入对应数据
大家好今儿给大家带来的是使用itextpdf在pdf模板中插入对应数据 目录 大家好今儿给大家带来的是使用itextpdf在pdf模板中插入对应数据 1.需求描述 2.操作Adobe Acrobat ...
- mysql中插入中文数据
今天遇到的问题使mysql中插入中文数据后显示乱码,我在mysql中插入中文的时候,可以插入可是select的时候却无法显示,为此我写下这篇博客用于解决mysql插入中文. 由于有些截图没有记录下来, ...
- WPF 九 ( loaded 事件和 Initialized 事件区别以及事件执行顺序总结)
在 WPF 中, 控件有 Loaded 和 Initialized 两种事件. 初始化和加载控件几乎同时发生, 因此这两个事件也几乎同时触发. 但是他们之间有微妙且重要的区别..具体区别如下 概念介绍 ...
- 引用asp.net母版页后,母版页和内容页的页面事件执行顺序
如下,经测试得到的执行步骤: 第01步.内容页的 Page_PreInit 第02步.母版页的 Page_Init 第03步.内容页的 Page_Init 第04步.内容页的 Page_InitCom ...
最新文章
- python flask 配置处理
- 系统集成知识点整理(五)质量管理
- JAG Practice Contest for ACM-ICPC Asia Regional 2016.K.Non-redundant Drive(点分治)
- 找回丢失的端星网络客户端
- Qt SD卡 文件系统挂载、文件预览
- 在.NET中用excel导出(概要)
- c# 2维数组 取一维_C#| 不同类型的一维数组声明
- 宁德时代拟定增募资不超582亿元,用于锂离子电池项目等
- ASP.NET--表达式、运算符与分支结构
- 开课吧Java面试题:使用 this 和 super 要注意
- 如何进入服务器文件管理,服务器怎么打开任务管理器
- excel转json脚本
- 移植Linux Kernel SM750 驱动到VxWorks 7
- 软件设计师----计算机网络
- Derby 和 Geronimo 使用感觉
- 安防海量高清视频无损压缩—四川省智慧公共安全系统案例
- 内存盘 固态硬盘 机械硬盘 速度测试
- 计网——14数字传输技术
- Android 操作系统你必须了解的知识
- 密码学基础(一)——哈希算法
热门文章
- char强制类型转换为int_数据类型专题之三: char类型和类型转换
- python静态检查工具哪个好用_介绍几款 Python 类型检查工具
- colspan会影响内部单元格宽度失效_冷轧轧辊失效原因分析及改进措施
- 智能体挑战赛 - “奥林匹克 跑步运动”
- 容器技术Docker K8s 22 容器服务ACK基础与进阶-存储管理
- 算法:把排好序的链表转换为二叉排序树Convert Sorted List to Binary Search Tree
- 极客大学架构师训练营--食堂就餐系统架构设计⽂档 -- 第一次作业
- shell脚本编写笔记
- python glob模块
- 多个计算机之间触发事件,相互通信的一种方法----通过文件的办法