zoukankan      html  css  js  c++  java
  • 【转】【Salesfoece】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. 执行其他的事件,比如发送电子邮件等
  • 相关阅读:
    c++的正则库 pcre
    http://alibench.com
    常用正则表达式,来自新浪微博的js
    mysql的反向
    字母汉子组合的验证码,包括实现看不清换一个的功能
    什么是Ajax
    做“时间日志”
    计划比目标还要重要!
    成功座右铭一
    建立组织
  • 原文地址:https://www.cnblogs.com/zhuzhubaoya/p/14054007.html
Copyright © 2011-2022 走看看