国产salesforce--------trigger触发事件顺序




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

在服务器上,Salesforce按以下顺序执行
      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的逻辑如发送电子邮件

你可能感兴趣的:(salesforce第一章)