Quando utilizzare prima e dopo i trigger in Salesforce?

Introduzione

Un trigger è un codice apice eseguito prima o dopo il verificarsi di eventi DML. Un trigger è una classe dietro le quinte e ha variabili come New, NewMap, Old e OldMap. I trigger dovrebbero essere ammassato. Dovrebbe funzionare allo stesso modo sia per record singoli che per più record.

Concetto di trigger in Salesforce

Un trigger è un componente Apex che viene eseguito automaticamente una volta attivato DML su qualsiasi oggetto. Supponiamo di avere un trigger scritto sull'oggetto Account prima di inserire e prima di aggiornare gli eventi. Quindi, se l'utente sta tentando di inserire o aggiornare il record dell'account, il trigger si attiverà in base alla condizione fornita.

Significa che i trigger sono specifici dell'oggetto (il trigger può essere creato su un singolo oggetto alla volta) e incentrati sull'evento.

Tipi di trigger in Salesforce

Abbiamo principalmente due tipi di trigger in Salesforce

1. Prima del trigger

Viene utilizzato principalmente se vogliamo aggiornare o convalidare i valori di un record prima che il record venga salvato nel database. Significa che il primo record verrà convalidato e quindi salvato prima del trigger. Non siamo tenuti a scrivere alcun evento DML prima del trigger.

2. Dopo il trigger

Questo tipo di trigger viene solitamente utilizzato quando i dati devono essere aggiornati in un oggetto separato a causa di una modifica.

Vengono eseguiti dopo che sono state apportate le modifiche finali al database.

Dopo l'attivazione di Trigger dopo il commit di DML in qualsiasi oggetto, i record che attivano After Trigger sono di sola lettura.

Quando utilizzare prima e dopo i trigger in Salesforce?

Quando è necessario convalidare o aggiornare i dati o i valori del record prima che il record venga salvato, utilizzare Before Trigger. Quando vogliamo accedere ai valori dei campi impostati dal sistema come il campo LastModifiedDate e influenzare le modifiche in altri record, utilizzare After Trigger.

I record che hanno avviato l'operazione di database sono di sola lettura in After Trigger. Se quel record ha avviato l'esecuzione del trigger, non è stato possibile modificare alcun valore di campo in After Trigger. Ad esempio, abbiamo un trigger sull'oggetto Account con l'evento DML After update e vogliamo aggiornare il valore del campo sull'oggetto Account. In questo caso, gli utenti non saranno in grado di modificare il valore del campo poiché sarebbe in modalità di sola lettura. Quindi, usa Before Trigger in questo scenario invece di After Trigger.

Esempi

esempio 1

trigger ContactDeletion su contatto (prima dell'eliminazione) { //Trigger.old contiene l'elenco dei contatti che vengono eliminati per (Contact cc : Trigger.old){ if(cc.AccountId != null){ cc.addError('Non puoi eliminare contatto con account associato'); } } }

 

esempio 2

trigger AccOppTrigger su Account (dopo l'inserimento) { List oppRec = new List(); for(Account acc : Trigger.new){ if(acc.Industry == 'Banking'){ Opportunità opp = new Opportunity(Name = acc.Name, StageName = 'Prospecting', AccountId = acc.Id, CloseDate = Data. oggi().addDays(15)); oppRec.aggiungi(opp); } } if(!oppRec.isEmpty()){ inserisci oppRec; } }

 

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.