Salesforce触发器面试题

这篇具有很好参考价值的文章主要介绍了Salesforce触发器面试题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

您可以在触发器中解释执行顺序吗?

以下是Salesforce在DML事件之前执行的事件的执行顺序。

记录是从数据库加载的,或者在使用upset语句的情况下被初始化。
新记录的字段值将覆盖旧值,**现在取决于请求的来源,此流程有所不同**:
如果请求来自UI页面,则Salesforce将执行以下验证:
检查所有布局特定的规则
在布局和字段级别检查所有必需的值
验证所有字段格式以及最大字段值长度
如果请求不是由UI发起的,则Salesforce仅检查外键的有效性。
现在,所有之前的触发器都在数据库中执行。
再次执行大多数验证,以验证所有必填字段都包含一些值并且不为null,在此步骤中,还将执行用户定义的验证,并且在此步骤中唯一不重复的验证是特定于布局的规则。
在上一步成功之后,通过运行重复规则,对记录进行复查。如果发现重复,则流程停止,并且不执行进一步的操作。
在此步骤中,记录已保存到数据库,但尚未提交。
现在,所有之后的触发器都将执行。
在此步骤中,执行分配规则。
现在,如果存在任何自动响应规则,则将执行它们。
队列中的下一个是工作流,它们在自动响应后执行。
如果工作流正在更新字段,则在这种情况下,字段将在此步骤中更新,并且在此步骤之后的流程会有所不同。
如果字段已更新,则会再次触发更新前和更新后触发器,并且标准验证也将再次执行。自定义验证升级规则和重复规则不需要再次运行。
一旦执行到达此阶段,则如果在对象上声明了任何内容,则将触发过程。
现在执行升级规则。
如有权利规则,将执行。
如果有任何汇总字段,则在此步骤中将对它们进行计算,并且父对象将进行保存过程。
现在执行共享规则。
如果我们达到了这个阶段,则意味着没有错误发生,并且数据已准备好提交到数据库并立即提交。
现在,如果有任何提交后的逻辑(例如电子邮件),则将执行该逻辑。

1 什么是触发器?

Apex触发器使您可以在事件发生之前或之后对Salesforce中的记录(例如插入,更新或删除)执行自定义操作。就像数据库系统支持触发器一样,Apex为管理记录提供触发器支持。

使用触发器来执行通过使用Salesforce用户界面中的点击工具无法完成的任务。例如,如果验证字段值或更新记录中的字段,请改用验证规则和工作流程规则。

2 什么是触发器语法?

trigger TriggerName on ObjectName (trigger_events) {
code_block
}

3 触发器可以触发哪些事件?

触发器是可以在以下事件上执行的一组语句。在以上触发事件中,可以使用以下事件中的一个或多个,并以逗号分隔。

插入之前
更新之前
删除之前
插入后
更新后
删除后
取消删除后
有哪些不同类型的触发器?
有两种类型的触发器:

isExecuting:如果Apex代码的当前上下文是触发器,而不是Visualforce页面,Web服务或工具,则返回true。 executeanonymous() API调用。
isInsert:返回 真的 如果由于插入操作而从Salesforce用户界面,Apex或API中触发了此触发器。
isUpdate:返回 真的 如果由于更新操作而从Salesforce用户界面,Apex或API中触发了此触发器。
isDelete:返回 真的 如果由于删除操作而从Salesforce用户界面,Apex或API中触发了此触发器。
isBefore:返回 真的 如果在保存任何记录之前触发了此触发器。
isAfter:返回 真的 保存所有记录后是否触发了此触发器。
isUndelete:返回 真的 如果从回收站中恢复记录后(即从Salesforce用户界面,Apex或API取消删除操作之后)触发了此触发器。
new:返回sObject记录的新版本的列表。该sObject列表仅在插入,更新和取消删除触发器中可用,并且记录只能在触发器之前进行修改。
newMap:ID到sObject记录的新版本的映射。该映射仅在更新之前,插入之后,更新之后和取消删除触发器之后才可用。
old:返回sObject记录的旧版本的列表。此sObject列表仅在 更新 和 删除 触发器。
oldMap:ID到sObject记录的旧版本的映射。此地图仅在 更新 和 删除 触发器。
size:触发​​器调用中新旧记录的总数。

4 Trigger.New与Trigger.newMap有何不同?

Trigger.New变量返回已调用触发器的sObject的列表,而Trigger.NewMap返回具有新输入记录的ID的映射。NewMap仅在插入后,更新前后和取消删除后才可用。

5 Trigger.new与Trigger.old有何不同?

Trigger.New变量返回已调用触发器的sObject的列表,而Trigger.old返回已调用触发器的记录的较旧版本的列表。Trigger.Old仅在更新和删除事件中可用

6 定义递归触发器,以及如何避免它?

触发器的结果有可能最终再次调用同一触发器,并且可以循环运行,这称为递归触发器。为了避免这种情况,我们应该创建一个静态变量并在执行触发器中的任何操作之前检查此变量的值。

7 在对象上定义的触发器数量是否有限制?

我们可以根据需要在一个对象上定义任意数量的触发器,但是建议每个对象有一个触发器,因为不能保证不同触发器的执行顺序,并且任何触发器都可以首先触发。文章来源地址https://www.toymoban.com/news/detail-407986.html

到了这里,关于Salesforce触发器面试题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL触发器】触发器的使用、创建、修改及删除

    一、什么是触发器 二、创建触发器 ①创建一个insert事件触发器 ②创建一个delete 事件触发器  三、触发器包含多条执行语句 四、查看触发器  ①SHOW TRIGGERS语句查看触发器 ②查看系统表triggers实现查看触发器   五、触发器的删除       当我们对一个表进行数据操作时,需

    2023年04月08日
    浏览(40)
  • Verilog设计实现D触发器与JK触发器

    题目:         用Verilog实现以下电路:                 1. 带复位端的正边沿触发的D触发器;                 2.带复位端的正边沿触发的JK触发器。 包括sys_clk,复位信号sys_rst_n,输入信号key_in以及输出信号led_out; 采用行为级描述: testbench仿真代码编写:

    2024年04月28日
    浏览(68)
  • 脉冲触发的触发器

    唯一的不同在于时钟信号的控制不一样 前面的叫做 主触发器, 后面叫做 从触发器 为什么在一个时钟周期内只可能改变一次?(工作原理)  在时钟信号等于0期间,看看时钟信号的工作 CLK=1期间,主FF工作,从FF不工作,主FF形成一个同步SR触发器的功能 随着S,R变化, 但是接

    2024年02月09日
    浏览(36)
  • 电平触发的触发器

    目录 引言 电路分析 分析输入输出关系 时钟信号 同步SR触发器的工作原理 1.时钟信号等于0期间 2.时钟信号等于1期间 总结  电平触发的D触发器(D锁存器) 普通的SR锁存器没有任何抗干扰能力 我们要加控制信号,来抵抗干扰 比如说我们不把信号直接加在门上,我们可以再加

    2023年04月14日
    浏览(39)
  • Unity碰撞检测/触发器触发问题

    在制作2D平板冒险游戏的攻击模块时,遇到攻击敌人后无法产生触发器事件的问题。 在玩家游戏对象下有一攻击子对象。子对象碰撞器默认处于禁用状态,当按下攻击键时,通过代码: 来对碰撞器进行激活,敌人有刚体,且并非Static状态。两个物体均有碰撞体,但此时并未触

    2024年02月11日
    浏览(39)
  • WPF 多值绑定(MultiBinding)与多属性触发器(MultiTrigger)与多数据触发器(MultiDataTrigger)

    当一个控件的某个属性需要绑定到多个值的时候,需要使用MultiBinding. 例子1 一个文本显示Person的Name和Age 例子2 当1,2,3都被选中时,下面的红色框隐藏,不使用后台代码逻辑。 这个时候,使用MultiBinding+MultiValueConverter可实现需求 首先定义多值转换器: XAML如下: 与Trigger属性对

    2024年02月05日
    浏览(32)
  • MySQL进阶——触发器

    同存储过程和函数类似,MySQL中的触发器也是存储在系统内部的一段程序代码,可以把它看作是一个特殊的存储过程。所不同的是,触发器无需人工调用,当程序满足定义条件时就会被MySQL自动调用。这些条件可以称为触发事件,包括INSERT、UPDATE和DELETE操作。 从MySQL5.7开始,可

    2024年02月04日
    浏览(34)
  • Oracle触发器

     数据库触发器是一个与表相关联、存储PL/SQL语句的“东西”。每当一个特定的数据操作语句(insert、update、delete)在指定的表上发出时,Oracle自动执行触发器中定义的语句序列(当 \\\'触发条件\\\' 成立时,其语句就会 \\\'自动执行\\\'   ) 触发器分类:DML触发器、DDL触发器、Databs

    2024年02月10日
    浏览(37)
  • 数据库-触发器

    目录 1. 触发器概述 2. 触发器的创建 2.1 创建触发器语法 3. 查看、删除触发器  3.2 删除触发器 4. 触发器的优缺点 4.2 缺点 4.3 注意点 在实际开发中,我们经常会遇到这样的情况:有 2 个或者多个相互关联的表,如 商品信息 和 库存信息 分 别存放在 2 个不同的数据表中, 我们

    2024年02月07日
    浏览(41)
  • PostgreSql 触发器

      触发器(Trigger)是由事件自动触发执行的一种特殊的存储过程,触发事件可以是对一个表进行INSERT、UPDATE、DELETE等操作。触发器经常用于加强数据的完整性约束和业务规则上的约束等。 参数说明: name :触发器的名称。这必须与同一个表上的任何其他触发器相区别。名

    2024年02月16日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包