Salesforce之执行顺序

    今天,因为一个Bug 小喵查了一下salesforce的执行流程,下面就分享给大家!

     当我们保存与插入,更新,或更新插入语句的记录,Salesforce的可以依次执行以下事件。
        注:Salesforce在服务器上执行这些事件之前,浏览器运行JavaScript验证是否有记录包含任何依赖列表字段。验证每个依赖列表字段限制了它的可用值。无其他验证发生在客户端。

执行顺序 :

1.   从数据库加载原始记录或初始化一个用于更新插入(upsert)语句的记录。 
2.   从请求加载新记录的字段值并覆盖旧的值。 
       如果请求来自一个标准的UI(user interface)编辑页面,Salesforce会运行系统验证去检查记录是否符合以下规则: 
          •符合布局的具体规则 
          •在布局水平和字段定义级别是否是必须入力的值 
          •有效字段格式 
          •最大字段长度 
        注意:当这个请求来自其他资源的时候(比如来自Apex application 或者 SOAP API 调用的时候.),salesforce并没有在此步骤中执行系统验证 
3.   执行所有的before 触发器。 
4.   再次运行大部分的系统验证步骤,如验证所有必填字段没有一个非空值,并运行所有用户自定义的验证规则。 
5.   保存记录到数据库中,但不提交事务(commit)。 
6.   执行所有的after 触发器。 
7.   执行分配规则(assignment rules)。 
8.   执行自动响应规则(auto-response rules)。 
9.   执行工作流程规则。 
10.   如果有工作流将一些字段更新了,再更新该记录。 
11.   如果记录在工作流更新字段值得时候被更新了,再一次(仅仅再一次)触发before update和after updata触发器,同时还有标准的验证规则也会被执行(自定义的验证规则不会被执行)。 
12.   如果有工作流流程触发器(workflow flow triggers),执行流(flow)。 
13.   执行升级规则。 
14.   如果记录包含一个卷起的汇总字段,或者是一个跨对象工作流程的一部分,执行计算并更新父记录卷起汇总字段。父记录经过保存的程序。

15.   如果父记录被更新,和祖父母记录包含一个卷起的汇总字段,或者是一个跨对象工作流程的一部分,执行计算并更新父记录卷起汇总字段。祖父母记录经过保存的程序。 
16.   执行基于共享的评价标准。 
17.   要求所有DML操作到数据库。 
18.   执行post-commit的逻辑,如发送电子邮件。

自 >> 

为了方便小伙伴们理解,再附上一个口诀 :

  1. 页面后台两不同,
  2. 布局规则最优先,
  3. 格式长度和必填。
  4. Before Trigger触发前,
  5. 后台只将外键检。
  6. 批量插入有例外,
  7. 验证规则提前验。
  8. Before之后做验证,
  9. 自定规则和必填,
  10. 系统规则不二遍。
  11. 验证之后跑去重,
  12. 存入DB不提交。
  13. After Trigger触发后,
  14. 分配/回复/工作流,
  15. 如果字段有更新,
  16. 验证/去重不再做,
  17. Trigger仅再跑一次。
  18. PB/Flow依次跑,
  19. 数据操作从头走,
  20. Case规则在随后。
  21. 父表汇总此时算,
  22. 工作流把父表更,
  23. 共享规则重计算。
  24. 数据DB提交后,
  25. 后续邮件才发送。

 

今天,小喵就 拿来即用 的给大家分享一下了

你 Get 到了吗?

(^_^)~喵~!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章