在服务器上,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 执行顺序的更多相关文章

  1. Apex 中插入更新数据的事件执行顺序

    在使用 Apex 代码插入或更新数据的时候,若干事件会被按顺序执行.了解这些顺序可以提高调试程序的效率,也可以避免不必要的错误. 可以参考官方文档. 事件的执行顺序 从数据库中读取要更新的数据记录或初 ...

  2. Java的初始化块、静态初始化块、构造函数的执行顺序及用途探究

    Java与C++有一个不同之处在于,Java不但有构造函数,还有一个”初始化块“(Initialization Block)的概念.下面探究一下它的执行顺序与可能的用途. 执行顺序 首先定义A, B, ...

  3. MonoBehaviour Lifecycle(生命周期/脚本执行顺序)

    脚本执行顺序 前言 搭建一个示例来验证Unity脚本的执行顺序,大概测试以下部分: 物理方面(Physics) 渲染(Scene rendering) 输入事件(InputEvent) 流程图 Uni ...

  4. Unity中脚本的执行顺序总结(@WhiteTaken)

    (Editor)以上是Unity官方文档中的截图,脚本在被挂载到物体上,会启用Editor的方法Reset. (Initialization)当执行脚本开始,初始化的过程中,依次执行的是Awake-& ...

  5. 《Java编程思想》学习笔记(二)——类加载及执行顺序

    <Java编程思想>学习笔记(二)--类加载及执行顺序 (这是很久之前写的,保存在印象笔记上,今天写在博客上.) 今天看Java编程思想,看到这样一道代码 //: OrderOfIniti ...

  6. Java学习笔记__异常机制_try_catch_finally_return执行顺序

    package cn.xiaocangtian.Exception; import java.io.FileInputStream; import java.io.FileNotFoundExcept ...

  7. 关于sql的执行顺序

    标准sql的解析顺序为 1)FROM子句,组装来自不同数据源的数据 2)WHERE子句 基于制定的条件对记录进行筛选 3)GROUP BY 子句将数据划分为多个分组 4)使用聚合函数进行计算 5) 使 ...

  8. SQL 语句与性能之执行顺序

    select * , t3.Name from t1 left join t2 on t1.sysno = t2.Asysno left join t3 on t3.sysno = t2.Bsysno ...

  9. 关于JavaScript预编译和执行顺序以及函数引用类型的思考

    昨晚在对项目中的一部分做模块化处理的时候,遇到了一个问题,一个重新定义的function对一个通用类中的function进行赋值覆盖的时候,失败了.问题抽象出来是这样的: <script > ...

随机推荐

  1. php 读取文件

    <?php /** *@param string $ip *@return string ip对应的地区 */ function getLocation($ip) { $ip_file_path ...

  2. [Maven]初次实践

    都说Maven好,以前一直用ant,这次体验一下. 开始之前,maven给我的印象有2个,一是库依赖管理做得比较好,二是规范了构建编译过程,说白了就是什么目录都规定好了. 好开始安装,解压缩,设置m2 ...

  3. angular路由 模块 依赖注入

    1.模块 var helloModule=angular.module('helloAngular',[]); helloModule.controller('helloNgCrtl',['$scop ...

  4. 【Demo】QQ,github,微博第三方社交登录

    本文主要讲解 集成 第三方社交账号登录 为什么会有这个需求? 主要是因为目前互联网的网站数量太多,如果在各个站点都注册一个账号 用户非常不容易记住每个账号的用户名和密码,并且非常难保证每个账号的密码足 ...

  5. JS检测移动端横竖屏

    (function () {                                var supportOrientation = (typeof window.orientation == ...

  6. app活动页面上的痛点

    app项目上需要做一个小的活动,先看下页面布局 需求是这5个板块逐个展示,展示一块的时候,页面整体向上滚动一定的距离. 刚开始考虑的时候,是准备依赖css3属性的transition实现的,包括顺序延 ...

  7. 【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤

    一.Makefile文件编写 http://www.cnblogs.com/majiangjiang/articles/3218002.html 可以看下上面的博客,总结的比较全了,在此不再复述 二. ...

  8. 如何在springMVC 中对REST服务使用mockmvc 做测试

    如何在springMVC 中对REST服务使用mockmvc 做测试 博客分类: java 基础 springMVCmockMVC单元测试  spring 集成测试中对mock 的集成实在是太棒了!但 ...

  9. 一次性搞明白 service和factory区别

    原文链接 http://blog.thoughtram.io/angular/2015/07/07/service-vs-factory-once-and-for-all.html 等下,已经有一篇文 ...

  10. Redis: OOM command not allowed when used memory > ‘maxmemory’

    现象 日志里出现异常: OOM command not allowed when used memory > 'maxmemory' 原因 内存已满,不允许再存数据了,可以通过redis-cli ...