Unidad 1 de 3
Patrón Trigger Handler
15 min
+150 puntos
Objetivos de aprendizaje
Al final de esta unidad será capaz de:
- Crear un trigger limpio que delegue en una clase handler.
- Separar lógica por contexto (before/after, insert/update).
Un trigger por objeto, una clase handler
Antes:
trigger AccountTrigger on Account (before insert, before update) {
for (Account a : Trigger.new) {
if (a.Industry == null) {
a.Industry = 'Other';
}
}
}
Mejor:
trigger AccountTrigger on Account (before insert, before update) {
new AccountTriggerHandler().run();
}
public with sharing class AccountTriggerHandler {
public void run() {
if (Trigger.isBefore && (Trigger.isInsert || Trigger.isUpdate)) {
asignarIndustriaPorDefecto((List<Account>) Trigger.new);
}
}
private void asignarIndustriaPorDefecto(List<Account> cuentas) {
for (Account c : cuentas) {
if (c.Industry == null) c.Industry = 'Other';
}
}
}
Esto separa la responsabilidad del trigger (decidir cuándo correr) de la lógica de negocio (qué hacer). Sus tests serán mucho más fáciles.
Inicia sesión para guardar tu progreso
Marca unidades como completadas, gana puntos y consigue tu estatus Agentblazer.