关于Salesforce里的Trigger

Salesforce Trigger基础知识 导航: 1.什么是触发器 2.语法结构 3.触发事件、触发类型 4.常用变量 什么是触发器 Apex 触发器(Apex Triggers)是一种特殊的 Apex 类。 Apex触发器类似于当特定事件发生时执行的存储过程。 它在记录事件发生之前和之后执行。 它的主要作用是在一条记录被插入、修改、删除之前或之后自动执行一系列的操作。每一个 Trigger 类必须对应一种对象。 注意事项: Salesforce 建议开发者在创建 Trigger 之前,考虑一下相同的操作可否通过 Salesforce 的设置界面中 阅读详情
  • 首先SFDC里的Trigger和Oracle的Trigger是一个东西,(Oracle里的Trigger怎么用问百度吧!)
  • 其次SFDC里的Trigger有些特殊,和注意事项,这里主要讲这里

        https://www.simplysfdc.com/2016/12/salesforce-trigger-best-practices.html

        https://trailhead.salesforce.com/ja/content/learn/modules/apex_triggers/apex_triggers_intro

        https://trailhead.salesforce.com/ja/content/learn/modules/apex_triggers/apex_triggers_bulk

总结以上文章的重点:

  1. 一个Trigger对应一个Object
  2. Trigger里不要些复杂的逻辑,例如一个Object可能存了好多种业务数据,为了将来扩展性,Trigger里只写主要的逻辑判断,

    详细业务逻辑,要写在Handler Class里。

  3. 防止SFDC限制不要在循环里写SOQL,这个和Apex的注意事项是一致的

  4. 批量处理数据,详细查看《https://editor.youkuaiyun.com/md/?articleId=105713115》

  5. 批量查询数据,详细查看《https://editor.youkuaiyun.com/md/?articleId=105713115》

  6. Trigger命名要和对应的Object相关联,例如:AccountTrigger

  • 最后一起看一下Trigger里Before和After的详细情况。

什么时候用Before,什么时候用After

http://sfdcinpractice.com/index.php/2017/01/09/3-6-difference-trigger/

Before Trigger:
In case of validation check in the same object.
Update the same object.
After Trigger:
Insert/Update related object,not the same object.
Notification Email.

before 和after的不同之处

高级Salesforce开发面试题 自定义设置允许您创建自定义数据集,以及为组织、配置文件或特定用户创建和关联自定义数据。自定义元数据类似于自定义设置,但是自定义元数据类型中的记录被视为元数据而不是数据。自定义设置有列表和层次自定义设置两种。自定义元数据中没有此类类型。此外,自定义元数据不支持基于用户配置文件或特定用户的层次结构类型的数据。自定义设置现在不再支持关系字段。但您可以在自定义元数据对象之间创建查找。元数据查询不占用查询sql次数的限制。 阅读详情

相关推荐

Python、Selenium实现问卷星自动填写(内含适配个人问卷的方法)

使用Python、Selenium实现问卷星自动填写,内含适配个人问卷的方法。

DaenCode的博客 3837

Trigger

Trigger在salesforce记录更改以前或者以后自动执行,可以执行以下几种情况:insert,update,delete,merge,upsert,undelete,一个trigger可以同时处理200条records,所以后面所讲的new和old变量的返回类型为List类型。 有两种类型的trigger: Before trigger通常用于在他们被保存在数据库以前更新或者校验数

qq_40398994的博客 785

无人机室内悬停如何稳?光流与IMU数据融合实战解析

在无GPS的室内环境中,无人机自主悬停依赖多传感器融合,其中光流与IMU是核心组合。光流传感器通过图像像素位移估算相对地面的速度,长期无漂移,但易受光照和纹理影响;IMU高频响应出色,却存在积分累积漂移。两者在频率与误差特性上天然互补,融合后可实现高精度位置估计。工程实践中,需合理选型、正确处理坐标变换与时间对齐,并通过互补滤波或扩展卡尔曼滤波将光流速度修正引入状态估计,进而支撑位置环与速度环控制。这一技术不仅解决室内定点悬停,也为视觉惯性里程计等更复杂的自主定位提供基础。本文结合真实调试案例,梳理从硬件安

weixin_33314040的博客 293

Salesforce事务执行顺序(Triggers and Order of Execution)

因为在Salesforce面试或者自己写代码的过程中,Salesforce的事务执行顺序经常被提到或者用到,所以记录一下,上面中文版的少了最新的Process Builder的顺序,请大家注意!Salesforce Trigger的执行顺序原文出自 当您保存与插入,更新,或更新插入语句的记录,Salesforce的可以依次执行以下事件。 注:Salesforce在服务器上执行这些事件之前,浏览

蒹葭苍苍 3425

AD(AltiumDesigner)封装导入allegro生成allegro封装

AD(AltiumDesigner)封装导入allegro生成allegro封装 貌似PCB的封装问题是一个无尽话题,为了简单我总是想找捷径(主要还是太懒了),因为也是近期才开始学习使用allegro进行PCB设计,在最近的一个设计中,很多器件封装allegro中都没有,一个一个画感觉很费时间,但是在AD(AltiumDesigner)的封装库中是有的,于是便想着AD的封装库能不能倒入到alleg...

yangh2560的博客 2万+

青龙人形机器人硬件平台设计全解析:从构型到控制系统的实战指南

本文深度解析了青龙人形机器人硬件平台的设计全流程,从需求分析、构型设计到核心系统实现。文章详细阐述了其43个自由度的仿生构型、高动态性下肢设计、灵巧作业系统以及分布式控制架构,并探讨了旋转关节与直线关节等关键技术选型,为开发者提供了从理论到实践的完整硬件设计指南。

weixin_29248313的博客 382

Salesforce入门教程(中文)-008 批量trigger、SOQL、DML简介

1.批量Apex Trigger设计模式 Apex触发器经过优化,可批量运行。 建议使用批量设计模式来处理触发器中的记录。 当使用批量设计模式时,触发器具有更好的性能,消耗更少的服务器资源,并且不太可能超出平台限制。 扩展代码的好处是,扩展代码可以高效地处理大量记录,并在Lightning平台上的调控器限制范围内运行。 这些调控器限制旨在确保失控代码不会垄断多租户平台上的资源。 以下各节演示了在触发器中扩展Apex代码的主要方法: 对触发器中的所有记录进行操作,对Sobject集合而不是一次对单个So

布偶酱的博客 617

深入解析CRC-16校验算法及其Verilog硬件实现

本文深入解析了CRC-16校验算法的原理及其在Verilog中的硬件实现方法。从基础的模2除法到串行和并行实现方案,详细介绍了LFSR结构、状态转移分析以及工业应用中的优化技巧。通过实际案例和性能对比,帮助开发者理解如何选择适合的CRC实现方案,确保数据传输的可靠性。

yolo5detector的博客 322

Salesforce知识点:触发器:自动化业务逻辑的核心工具详解

Salesforce触发器是自动化业务逻辑的核心工具,能在数据操作时自动执行预设代码。本文详解了触发器的概念、类型(Before/After)、触发事件及语法结构,强调使用上下文变量和批量处理的重要性。文章提供了开发规范与最佳实践,推荐将业务逻辑封装到Apex类而非直接写入触发器,以实现代码可维护性。通过对比正反案例,展示了如何优化触发器设计,避免性能问题并遵守Salesforce执行限制,为企业级应用提供可靠解决方案。

轻骏堂 988

[运动规划算法]基于飞行走廊的轨迹优化

文章目录简介一、介绍二、原理飞行走廊生成三、项目演示参考 简介 Btraj是一个在线的四旋翼无人机的运动规划框架,主要用于未知环境中的自主导航。基于机载状态估计和环境感知,采用基于快速行进(FM *)的路径搜索方法,从基于构建的欧氏距离场(ESDF)中寻找路径,以实现更好的时间分配。通过对环境进行膨胀生成四旋翼无人机的飞行飞行走廊。使用伯恩斯坦多项式将轨迹表示为分段Bezier曲线,并将整个轨迹生成问题转换成凸问题。通过使用Bezier曲线,可以确保轨迹的安全性和高阶动力学可行性,可以将轨迹完全限制在安全

xiewf的博客 8063

安卓逆向 | 某社交类APP gsid

*本文章仅供学习交流,切勿用于非法通途,如有侵犯贵司请及时联系删除

爬虫进击之路 3083

Salesforce里的trigger里的变量

对于Trigger.new和Trigger.old的一些总结

whyy0的专栏 1388

海康visionmaster开发笔记10-集成HALCON第三方算子到VM工具箱的方法

海康visionmaster开发笔记10-HALCON第三方算子到VM工具箱的方法

视觉人机器视觉的博客 4347

salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗

在 Case 对象上新建两个自定义数字字段,分别用于统计收到和发送的邮件数量,例如“Received Emails”和“Sent Emails”。

Debug yourself! 472

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Salesforce Trigger Handler 接口

Trigger 接口Trigger 接口 public class Triggers { /** Enum representing each of before/after CRUD events on Sobjects */ public enum Evt { afterdelete, afterinsert, afterundelete...

wangyi9896的博客 704

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

salesforce的触发器(trigger)

可以使用触发器调用Apex。Apex触发器使您能够在更改Salesforce记录之前或之后执行自定义操作,如插入、更新或删除。

qq_51917627的博客 1146

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Salesforce Trigger

每个trigger 最好都 使用一个类来进行管理TriggerManager public class TriggerManager { public enum Event { AFTER_DELETE, AFTER_INSERT, AFTER_UNDELETE, AFTER_UPDATE, BEFORE_DELETE, BEFORE_INSERT, BEFORE_UPDATE } public interface Handler { void handle(); } .

lhc_10的博客 355

Salesforce--删除生产Trigger或者Apex Class

学习目标: 1,利用workbench删除生产不需要的Trigger和Apex Class workbench删除生产不需要的Trigger和Apex Class 场景:最近在项目中遇到生产Object数量不够的问题。公司又不想去升级Salesforce Org的Edition。所以就删除一下不必要的Object。但是删除的时候有以来关系,其中有Trigger和Apex Class。所以,写了下...

weixin_41126799的博客 920

初识Salesforce中的Apex和Trigger

//下面是创建了一个Apex类,来操作Book这个对象 public class HelloWorld0105 { public static void applyDiscount(Book__c[] books){ for(Book__c b : books){ b.Price__c *= 0.9; }

恩的博客 3718

Salesforce开发教程(二)下

2.6 Trigger   Salesforce中触发器的使用,能够帮助开发人员在用户保存、修改、删除、恢复数据的时候,执行一些Apex代码;在传统开发过程中,数据库中触发器的编写容易引发一些意想不到的问题,所以通常会避开直接编写触发器,更常用的做法是将要在触发器写的逻辑写到Controller层;那么在Salesforce开发过程中,为什么会提到触发器开发呢?原因在于Salesforce的Model层与Controller层是集成的,比如用户点击保存按钮(系统标准按钮)后,开发人员无法获取到从保存开始到数

weixin_47559434的博客 812

Salesforce 从N 层设计角度来看Trigger

wangyi9896的博客 341

在Salesforce中避免对Trigger中Update的无限循环操作

在Salesforce中避免对Trigger中Update的无限循环操作: 处理Trigger的时候会有这么一个场景:在Trigger中想修改该Object的某些字段的值,那么如果们在程序中再用代码的方式去更新此时的Object的话,就会出现无限循环。 想必大家稍微想一下就会知晓这其中的道理。不多说,直接上段代码,如下所示: trigger UpdateBookItemTrigge...

weixin_30256901的博客 260

Salesforce 防止Trigger循环触发

防止trigger循环触发Class code :public Class checkRecursive { private static boolean run = true; public static boolean runOnce() { if(run){ run=false; return true; } ...

wangyi9896的博客 747

salesforce trigger发Email为PDF(文字+图片)

前篇文章介绍使用salesforce的trigger发email,但是我们发现他有很多的限制,比如说,getContent()和getContent

于涛的专栏 2525

在Salesforce中对Object实现Trigger的绑定

Trigger的相关属性详细解读请看如下链接: http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_triggers_context_variables.htm 详细的创建步骤请看如下链接: http://www.salesforce.com/us/developer/docs/apexcode/Conte...

weixin_30492047的博客 130

【Salesforce】【Apex】Trigger中不通过soql查询记录类型的开发名称

Trigger中不通过soql查询记录类型的开发名称 应用场景 在Trigger中,我们有时候会需要判断当前记录的记录类型。在Trigger的上下文中,记录有关类型的数据只有一个 RecordTypeId ,而在开发规约中,通常并不允许通过RecordTypeId来判断类型,原因大概有: RecordTypeId会随着环境(Sandbox, Production …) 改变 用RecordTypeId判断属于硬编码(hardcode) 因此,在项目开发中会用定义RecordTypeInfo的Develo

ljinest 399
上一篇: salesforce static resource and apex
下一篇: 关于Salesforce里的测试Class
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值