¿Cuándo usar disparadores antes y después en Salesforce?

Introducción

Un disparador es un código ápice que se ejecuta antes o después de que ocurran los eventos DML. Un disparador es una clase detrás de escena y tiene variables como New, NewMap, Old y OldMap. Los disparadores deben ser abultado. Debería funcionar tanto para registros únicos como para registros múltiples de la misma manera.

Concepto de Triggers en Salesforce

Un activador es un componente de Apex que se ejecuta automáticamente una vez que se activa DML en cualquier objeto. Supongamos que tenemos un disparador escrito en el objeto Cuenta antes de insertar y actualizar eventos. Luego, si el usuario intenta insertar o actualizar el registro de la cuenta, el disparador se activará según la condición proporcionada.

Significa que los disparadores son específicos del objeto (el disparador se puede crear en un solo objeto a la vez) y centrados en eventos.

Tipos de disparadores en Salesforce

Principalmente tenemos dos tipos de disparadores en Salesforce

1. antes del gatillo

Esto se usa principalmente si queremos actualizar o validar los valores de un registro antes de que el registro se guarde en la base de datos. Significa que el primer registro se validará y luego se guardará antes del desencadenador. No estamos obligados a escribir ningún evento DML antes del disparador.

2. Después del gatillo

Este tipo de disparador generalmente se usa cuando los datos deben actualizarse en un objeto separado debido a un cambio.

Se ejecutan después de que se hayan realizado los cambios finales en la base de datos.

After Trigger se activa una vez que DML se confirma en cualquier objeto, los registros que activan After Trigger son de solo lectura.

¿Cuándo usar disparadores antes y después en Salesforce?

Cuando necesitemos validar o actualizar los datos o los valores de registro antes de que se guarde el registro, utilice Before Trigger. Cuando queremos acceder a los valores de campo que establece el sistema, como el campo LastModifiedDate y afectar los cambios en otros registros, use After Trigger.

Los registros que iniciaron la operación de la base de datos son de solo lectura en After Trigger. Si ese registro iniciaba la ejecución del disparador, no podíamos modificar ningún valor de campo en After Trigger. Por ejemplo, tenemos un activador en el objeto Cuenta con el evento Después de actualizar DML y queremos actualizar el valor del campo en el objeto Cuenta. En este caso, los usuarios no podrán cambiar el valor del campo, ya que estaría en modo de solo lectura. Por lo tanto, use Before Trigger en este escenario en lugar de After Trigger.

Ejemplos

ejemplo 1

active ContactDeletion on Contact (antes de eliminar) { //Trigger.old contiene una lista de contactos que se eliminarán para (Contacto cc: Trigger.old){ if(cc.AccountId != null){ cc.addError('No puede eliminar contacto con cuenta asociada'); } } }

 

ejemplo 2

activar AccOppTrigger en la cuenta (después de insertar) { List oppRec = new List(); for(Account acc : Trigger.new){ if(acc.Industry == 'Banking'){ Oportunidad opp = nueva Oportunidad(Nombre = acc.Name, StageName = 'Prospecting', AccountId = acc.Id, CloseDate = Fecha. hoy().addDays(15)); oppRec.add(opp); } } if(!oppRec.isEmpty()){ insertar oppRec; } }

 

Déjame tu comentario

Este sitio usa Akismet para reducir el correo no deseado. Descubra cómo se procesan los datos de sus comentarios.