Fermer

mars 29, 2024

Simplifier la gestion des adresses avec les déclencheurs Apex dans Salesforce

Simplifier la gestion des adresses avec les déclencheurs Apex dans Salesforce


Bonjour les pionniers !

Dans Salesforce, la gestion des adresses peut parfois s’avérer une tâche fastidieuse, notamment lorsqu’il s’agit de données en double ou d’assurer la cohérence entre différents enregistrements. Cependant, grâce à la puissance des déclencheurs Apex, nous pouvons automatiser les processus de gestion des adresses pour rationaliser les opérations et améliorer la précision des données.

Dans ce blog, nous explorerons comment utiliser un déclencheur Apex pour synchroniser automatiquement les adresses d’expédition et de facturation sur l’objet Compte en fonction d’un champ de case à cocher.

Aperçu du scénario

Imaginez que vous travaillez avec l’objet « Demande de compte » dans Salesforce et que vous disposez de deux ensembles de champs d’adresse : un pour l’adresse de facturation et un autre pour l’adresse de livraison. Pour simplifier la saisie des données et assurer la cohérence, vous décidez de mettre en place un champ de case à cocher nommé « Adresse de facturation identique à l’adresse de livraison ». Lorsque cette case est cochée, les champs d’adresse de facturation doivent être automatiquement renseignés avec les valeurs des champs d’adresse de livraison.

Si vous souhaitez en savoir plus sur la façon dont il apparaît sur l’interface utilisateur, suivez ceci lien.

Création du déclencheur Apex

Pour obtenir cette fonctionnalité, nous allons créer un déclencheur Apex sur l’objet « Demande de compte » qui se déclenche chaque fois que la case « Adresse de facturation identique à l’adresse de livraison » est cochée. Voici comment nous pouvons implémenter le déclencheur :

AccountRequestTrigger.apxt

trigger AccountRequestTrigger on AccountRequest__c (before insert) {

    if(trigger.isBefore && trigger.isInsert){
        AccountRequestTriggerHandler.createAccountRequest(trigger.new);
    }
}

AccountRequestTriggerHandler.apxc

public class AccountRequestTriggerHandler {
    
    //trigger_handler for making billing address same as shipping address when checkbox = true .... 
     @AuraEnabled(cacheable=true)
    public static void createAccountRequest(List<AccountRequest__c> accReq){
        System.debug('accReq Value ==>' +accReq);
        for(AccountRequest__c acc : accReq){
            if(acc.Billing_Add_same_as_Shipping_Add__c  == true){
                acc.BillingStreet__c = acc.ShippingStreet__c ;
                acc.BillingCity__c = acc.ShippingCity__c ;
                acc.BillingState__c = acc.ShippingState__c ;
                acc.BillingCountry__c = acc.ShippingCountry__c ;
                acc.BillingPostalCode__c = acc.ShippingPostalCode__c ;
            }
        }
    }

}

AccountRequestTriggerHandlerTest.apxc

@isTest
public class AccReqTrigHandlerTest {
    
    @isTest
    public static void testCheckboxVal(){
        List<AccountRequest__c> accList = new List<AccountRequest__c>();
        AccountRequest__c accR = new AccountRequest__c();
        accR.Name="Prathamesh";
        accR.FirstName__c="Pratham";
        accR.LastName__c="Parab";
        accR.PrimaryEmail__c="parab@gmail.com" ;
        accR.ShippingStreet__c="IT Garden";
        accR.ShippingCity__c="Sawantwadi" ;
        accR.ShippingState__c="Maharashtra";
        accR.ShippingPostalCode__c="896523" ;
        accR.ShippingCountry__c="India";
        accR.Billing_Add_same_as_Shipping_Add__c = true;
        insert accR;
        System.debug('Account Req Record==>' +accR);
        
        List<AccountRequest__c> accReqest = [SELECT Id, Billing_Add_same_as_Shipping_Add__c , ShippingStreet__c,ShippingCity__c,ShippingState__c,ShippingPostalCode__c,ShippingCountry__c from AccountRequest__c];

        for( AccountRequest__c acc : accReqest){
            if(acc.Billing_Add_same_as_Shipping_Add__c == true){
                acc.BillingStreet__c = acc.ShippingStreet__c ;
                acc.BillingCity__c = acc.ShippingCity__c ;
                acc.BillingState__c = acc.ShippingState__c ;
                acc.BillingPostalCode__c = acc.ShippingPostalCode__c ;
                acc.BillingCountry__c = acc.ShippingCountry__c ;
            }
            accList.add(acc);
        }
        update accList;
        
        Test.startTest();
        AccountRequestTriggerHandler.createAccountRequest(accList);
        Test.stopTest();
        
    }    

}

Dans le déclencheur Apex et sa classe Handler

  1. Nous définissons un déclencheur avant l’insertion qui se déclenche avant l’insertion des enregistrements de demande de compte. (Vous pouvez utiliser avant l’insertion, avant la mise à jour, etc. selon les exigences.)
  2. Dans la classe de gestionnaire, nous parcourons les enregistrements de demande de compte dans la variable contextuelle Trigger.new.
  3. Si la case BillingAddressSameAsShipping__c est cochée, nous synchronisons les champs d’adresse de facturation avec les champs d’adresse de livraison correspondants.

Dans la classe de test Apex

  1. Nous créons un enregistrement de demande de compte test avec les champs d’adresse de livraison renseignés.
  2. Nous cochons également la case BillingAddressSameAsShipping__c sur true et insérons l’enregistrement.
  3. Nous interrogeons l’enregistrement de demande de compte, l’itérons et synchronisons les champs d’adresse de facturation avec les champs d’adresse de livraison.

Ainsi, avec cela, nous pouvons réussir à remplir les champs d’adresse de facturation avec les valeurs des champs d’adresse de livraison à l’aide d’Apex Trigger.

Si vous n’avez pas consulté la partie précédente de ce blog sur la manière dont nous pouvons implémenter cette fonctionnalité à l’aide de LWC, vous pouvez utiliser ceci lien.

Conclusion

À l’aide des déclencheurs Apex, nous avons automatisé la synchronisation des adresses d’expédition et de facturation sur l’objet Demande de compte dans Salesforce. Avec l’aide des déclencheurs Salesforce, nous pouvons rationaliser les processus de gestion des données, améliorer l’exactitude des données et améliorer la productivité des utilisateurs.

Bonne lecture!

Ressources:

  1. Guide du développeur de composants Web Lightning
  2. Bibliothèque de composants Lightning
  3. Trailhead : Notions de base des composants Web Lightning

Vous pouvez également lire :

  1. Une introduction à Salesforce CPQ
  2. Salesforce CPQ et ses fonctionnalités clés
  3. Libérer la puissance de l’IA : Einstein pour les développeurs
  4. Révolutionner l’engagement client : le chatbot Salesforce Einstein






Source link