Quand utiliser les déclencheurs avant et après dans Salesforce ?

Introduction

Un déclencheur est un code apex exécuté avant ou après que des événements DML se produisent. Un déclencheur est une classe dans les coulisses et il a des variables comme New, NewMap, Old et OldMap. Les déclencheurs doivent être volumineux. Cela devrait fonctionner pour des enregistrements uniques ainsi que pour plusieurs enregistrements de la même manière.

Concept de déclencheurs dans Salesforce

Un déclencheur est un composant Apex qui s'exécute automatiquement une fois que DML est déclenché sur n'importe quel objet. Supposons que nous ayons écrit un déclencheur sur l'objet Compte avant d'insérer et de mettre à jour les événements. Ensuite, si l'utilisateur essaie d'insérer ou de mettre à jour l'enregistrement du compte, le déclencheur se déclenchera en fonction de la condition fournie.

Cela signifie que les déclencheurs sont spécifiques à l'objet (un déclencheur peut être créé sur un seul objet à la fois) et centrés sur l'événement.

Types de déclencheurs dans Salesforce

Nous avons principalement deux types de déclencheurs dans Salesforce

1. Avant le déclencheur

Ceci est principalement utilisé si nous voulons mettre à jour ou valider les valeurs d'un enregistrement avant que l'enregistrement ne soit enregistré dans la base de données. Cela signifie que le premier enregistrement sera validé, puis il est enregistré avant le déclencheur. Nous ne sommes pas obligés d'écrire des événements DML avant le déclencheur.

2. Après le déclenchement

Ce type de déclencheur est généralement utilisé lorsque les données doivent être mises à jour dans un objet distinct en raison d'un changement.

Ils s'exécutent après que les modifications finales ont été apportées à la base de données.

Une fois que le déclencheur est déclenché une fois que DML est validé dans n'importe quel objet, les enregistrements qui déclenchent le déclencheur après sont en lecture seule.

Quand utiliser les déclencheurs avant et après dans Salesforce ?

Lorsque nous devons valider ou mettre à jour les données ou les valeurs d'enregistrement avant que l'enregistrement ne soit enregistré, utilisez Avant le déclencheur. Lorsque nous voulons accéder aux valeurs de champ définies par le système comme le champ LastModifiedDate et affecter les modifications dans d'autres enregistrements, utilisez After Trigger.

Les enregistrements qui ont initié l'opération de base de données sont en lecture seule dans After Trigger. Si cet enregistrement a lancé l'exécution du déclencheur, nous ne pourrions modifier aucune valeur de champ dans After Trigger. Par exemple, nous avons un déclencheur sur l'objet Compte avec l'événement DML Après la mise à jour, et nous voulons mettre à jour la valeur du champ sur l'objet Compte. Dans ce cas, les utilisateurs ne pourront pas modifier la valeur du champ car ils le seraient en mode lecture seule. Utilisez donc Before Trigger dans ce scénario au lieu de After Trigger.

Exemples

Exemple 1

trigger ContactDeletion on Contact (before delete) { //Trigger.old contient la liste des contacts qui sont supprimés pour(Contact cc : Trigger.old){ if(cc.AccountId != null){ cc.addError('Vous ne pouvez pas supprimer contact ayant un compte associé'); } } }

 

Exemple 2

trigger AccOppTrigger on Account (after insert) { List oppRec = new List(); for(Account acc : Trigger.new){ if(acc.Industry == 'Banking'){ Opportunity opp = new Opportunity(Name = acc.Name, StageName = 'Prospecting', AccountId = acc.Id, CloseDate = Date. aujourd'hui().addDays(15)); oppRec.add(opp); } } if(!oppRec.isEmpty()){ insert oppRec ; } }

 

Laissez un commentaire

Ce site utilise Akismet pour réduire les spams. Découvrez comment sont traitées les données de vos commentaires..