zoukankan      html  css  js  c++  java
  • Apex 中插入更新数据的事件执行顺序

    在使用 Apex 代码插入或更新数据的时候,若干事件会被按顺序执行。了解这些顺序可以提高调试程序的效率,也可以避免不必要的错误。

    可以参考官方文档

    事件的执行顺序

    1. 从数据库中读取要更新的数据记录或初始化要插入的数据
    2. 更新相关的字段值
    3. 如果插入或更新的请求来自标准的 Salesforce 新建或编辑页面,检查相关的要求,比如字段是否必须、字段的长度是否符合定义、字段的格式是否合理
    4. 如果插入或更新的请求来自 Apex 代码或 API,则只检查外键关联是否合理
    5. 执行所有的 before 类型的触发器代码。注意,当一个操作有不同的触发器逻辑,则它们的执行顺序是不确定的。比如对于“客户”的记录有两个 before insert 类型的触发器逻辑,则任一逻辑都可能先执行
    6. 再次执行第3步所提到的检查
    7. 执行系统中定义的“重复规则”(Duplicate Rules)
    8. 将更新的数据保存到数据库,但是暂时不提交
    9. 执行所有的 after 类型的触发器代码
    10. 执行“分配规则”(Assignment Rules)
    11. 执行“自动回复规则”(Auto-response Rules)
    12. 执行“工作流规则”(Workflow Rules)
    13. 如果“工作流规则”中对于该记录进行了更新,则再次更新该记录。然后,再次执行一次第3步中的检查,和 before 和 after 类型的触发器代码。其他的自定义验证规则以及第7、10、11步中所定义的规则则不会执行
    14. 执行相关的流程(Process)
    15. 执行“升级规则”(Escalation Rules)
    16. 执行“权利过程”(Entitlement Process)
    17. 对与该记录相关的记录进行更新,比如“累计汇总”(Roll-Up Summary)字段的值
    18. 计算记录的分享规则结果
    19. 将第8步中保存的数据提交到数据库,真正的保存起来
    20. 执行其他的事件,比如发送电子邮件等
  • 相关阅读:
    LeetCode Array Easy 414. Third Maximum Number
    LeetCode Linked List Medium 2. Add Two Numbers
    LeetCode Array Easy 283. Move Zeroes
    LeetCode Array Easy 268. Missing Number
    LeetCode Array Easy 219. Contains Duplicate II
    LeetCode Array Easy 217. Contains Duplicate
    LeetCode Array Easy 189. Rotate Array
    LeetCode Array Easy169. Majority Element
    LeetCode Array Medium 11. Container With Most Water
    LeetCode Array Easy 167. Two Sum II
  • 原文地址:https://www.cnblogs.com/chengcheng0148/p/apex_data_trigger_execution_order.html
Copyright © 2011-2022 走看看