Salesforce 如何使用System.TriggerOperation枚举

Salesforce 如何使用System.TriggerOperation枚举,salesforce,Salesforce,Salesforce提供了一个新功能,允许使用TriggerOperationenum。与传统触发器相比,我找不到任何示例如何使用这种方法。例如,如何替换此代码: 在ObjectName上触发TriggerName(删除之前、插入之前、更新之前、, 删除后、插入后、更新后){ if(Trigger.isBefore){ 如果(Trigger.isInsert){//do something} 如果(Trigger.isUpdate{//do something} }否则{ 如果(Trigger.

Salesforce
提供了一个新功能,允许使用
TriggerOperation
enum。与传统触发器相比,我找不到任何示例如何使用这种方法。例如,如何替换此代码:

在ObjectName上触发TriggerName(删除之前、插入之前、更新之前、,
删除后、插入后、更新后){
if(Trigger.isBefore){
如果(Trigger.isInsert){//do something}
如果(Trigger.isUpdate{//do something}
}否则{
如果(Trigger.isInsert){//do something}
如果(Trigger.isUpdate{//do something}
}
}
谢谢。

回答

根据Summer 18Apex开发者指南,System.TriggerOperation类中引入了7个新的枚举值

删除后的

后插入
删除后
更新后
删除前
插入前
更新前

类似地,在名为
operationType
的触发器类中添加了一个新变量,该类存储它正在执行的上下文枚举

因此,使用开关盒的触发器如下所示:

trigger AccountTrigger on Account(删除前、插入前、更新前、,
删除后、插入后、更新后){
打开触发器。操作类型{
插入后的时间{
//插入后做什么
}
更新后什么时候{
//更新后做什么
} 
}
}
没有失败。在为>特定when块执行代码块后,switch语句退出

我的新增内容

您还可以执行以下操作

trigger AccountTrigger on Account(删除前、插入前、更新前、,
删除后、插入后、更新后){
if(Trigger.operationType==TriggerOperation.AFTER\u INSERT){
//插入后做什么
} 
}
最后是非常个人化的IMHO——这只是一种语法糖分,对于使用良好触发器架构的人来说毫无益处

根据Summer 18Apex开发者指南,System.TriggerOperation类中引入了7个新的枚举值

删除后的

后插入
删除后
更新后
删除前
插入前
更新前

类似地,在名为
operationType
的触发器类中添加了一个新变量,该类存储它正在执行的上下文枚举

因此,使用开关盒的触发器如下所示:

trigger AccountTrigger on Account(删除前、插入前、更新前、,
删除后、插入后、更新后){
打开触发器。操作类型{
插入后的时间{
//插入后做什么
}
更新后什么时候{
//更新后做什么
} 
}
}
没有失败。在为>特定when块执行代码块后,switch语句退出

我的新增内容

您还可以执行以下操作

trigger AccountTrigger on Account(删除前、插入前、更新前、,
删除后、插入后、更新后){
if(Trigger.operationType==TriggerOperation.AFTER\u INSERT){
//插入后做什么
} 
}
最后是非常个人化的IMHO——这只是一种语法糖分,对于使用良好触发器架构的人来说毫无益处