【advanced apex programming in salesforce系列 02】Execution Context(执行上下文)
2023年08月22日
文章浏览:265


Execution Context(执行上下文)

在Apex开发中,Execution Context(执行上下文)是非常重要的概念。

影响到我们在开发过程中的方方面面。


Execution Context(执行上下文)有两个特性,分别是

  1. 定义静态变量的范围和生命周期
  2. 定义governor limits(州长限制)的生命周期,定义在下一个Execution Context(执行上下文)之前 governor limits(州长限制)是否会被重置


更多细节,留在后面会详细解说。

在这里,我希望大家能够记住下面这些知识点


  1. 静态变量在一个执行上下文中间被保持,而且是唯一的变量,和下一次执行上下文同名的变量没有任何关系。
  2. 大部分(不是全部)governor limits会被重置,在下一次执行之前。比如上一次处理内的数据查询次数是100,在结束的时候就用掉了85,因为会被重置,所以下一次处理重新开始的时候,就可以重新使用这个100的查询次数。不同的处理会有不同的限制,同步处理和异步处理能够使用的资源数量就不一样。
  3. 最后需要知道的一个概念就是,可能你能够知道你的处理开始了,但你通常并不可能知道这个处理什么时候结束


简单的例子,只有一个Trigger的时候



有多个Trigger的时候



Apex设计模式的影响


  1. 针对一个Object,如果有多个Trigger被创建的情况下,这多个Trigger的执行顺序得不到保证,我们根本就没有办法去设置执行顺序。
  2. Apex Governor的各种限制在Apex执行过程中会被计算,我们创建的Apex代码,也可能调用到管理权限是别人的apex代码,所以也有发生Apex Governor异常的可能性。
  3. 使用Flows、Workflows(LowCode)这些工具来添加功能的情况下,也有可能对我们创建的Apex代码产生影响,比如执行顺序发生了改变。




关注 收藏