Comment Bypasser les Triggers Salesforce en Vérifiant un Champ Utilisateur

Partagez cet article

Dans certains scénarios, il peut être utile de désactiver temporairement l’exécution des triggers Salesforce pour certains utilisateurs, par exemple pour des opérations de maintenance ou des migrations de données. Dans ce tutoriel, nous allons apprendre à conditionner l’exécution des triggers en fonction d’un champ personnalisé, BypassTrigger__c, de l’utilisateur courant.

Étape 1: Créer le Champ Personnalisé

Pour commencer, créez un champ personnalisé sur l’objet User :

  1. Allez dans Setup.
  2. Dans la barre de recherche rapide, tapez Object Manager et sélectionnez-le.
  3. Recherchez et sélectionnez User.
  4. Allez dans Fields & Relationships et cliquez sur New.
  5. Sélectionnez Checkbox comme type de champ et cliquez sur Next.
  6. Donnez le nom BypassTrigger et terminez la création du champ.

Étape 2: Créer une Classe Utilitaire pour Vérifier le Champ

Ensuite, créez une classe utilitaire Apex pour vérifier la valeur du champ BypassTrigger__c de l’utilisateur courant.

public class TriggerUtils {
public static Boolean isTriggerBypassed() {
// Récupérer l'utilisateur courant
User currentUser = [SELECT BypassTrigger__c FROM User WHERE Id = :UserInfo.getUserId()];

// Vérifier la valeur du champ BypassTrigger__c
return currentUser.BypassTrigger__c;
}
}

Étape 3: Utiliser la Méthode Utilitaire dans un Trigger

Modifiez votre trigger pour utiliser la méthode isTriggerBypassed et conditionner son exécution.

trigger AccountTrigger on Account (before insert, before update, after insert, after update) {
// Vérifier si le trigger doit être bypassé
if (TriggerUtils.isTriggerBypassed()) {
// Sortir du trigger si BypassTrigger__c est vrai
return;
}

// Vos actions de trigger ici
if (Trigger.isBefore) {
if (Trigger.isInsert) {
// Actions avant insertion
} else if (Trigger.isUpdate) {
// Actions avant mise à jour
}
} else if (Trigger.isAfter) {
if (Trigger.isInsert) {
// Actions après insertion
} else if (Trigger.isUpdate) {
// Actions après mise à jour
}
}
}

Conclusion

En suivant ce tutoriel, vous avez appris comment utiliser un champ personnalisé sur l’objet User pour conditionner l’exécution des triggers dans Salesforce. Cette approche permet de désactiver temporairement les triggers pour certains utilisateurs, ce qui peut être utile pour des opérations spécifiques.

A lire aussi :  Utilisation de Test Classes et couverture de code dans Salesforce

Assurez-vous de tester cette fonctionnalité dans un environnement sandbox avant de la déployer en production. Si vous avez des questions ou des commentaires, n’hésitez pas à les partager ci-dessous.


Partagez cet article

Publications similaires