Salesforce
提供了一项允许使用TriggerOperation
枚举的新功能。我找不到任何与传统触发器相比如何使用此方法的示例。例如,如何替换此代码:
trigger TriggerName on ObjectName (before delete, before insert, before update,
after delete, after insert, after update) {
if (Trigger.isBefore) {
if (Trigger.isInsert) { // do something }
if (Trigger.isUpdate { // do something }
} else {
if (Trigger.isInsert) { // do something }
if (Trigger.isUpdate { // do something }
}
}
感谢。
答案 0 :(得分:1)
来自salesforce.stackexchange.com
的回答根据<script src="https://rawgit.com/moment/moment/2.2.1/min/moment.min.js"></script>
Apex开发人员指南,System.TriggerOperation类中引入了7个新的枚举值。
Summer 18
类似地,在名为AFTER_DELETE
AFTER_INSERT
AFTER_UNDELETE
AFTER_UPDATE
BEFORE_DELETE
BEFORE_INSERT
BEFORE_UPDATE
的Trigger类中添加一个新变量,该变量存储它正在执行的上下文枚举。
因此,使用switch case的触发器将如下:
operationType
没有堕落。在为特定的块时执行代码块之后,switch语句退出
我的添加
您也可以执行以下操作
trigger AccountTrigger on Account (before delete, before insert, before update,
after delete, after insert, after update) {
switch on Trigger.operationType {
when AFTER_INSERT{
//do after insert stuff
}
when AFTER_UPDATE{
//Do after update stuff
}
}
}
最后非常个人恕我直言 - 这只是一种语法糖,对于使用良好触发器架构的人来说没有任何利润