Skip to main content

Création d’une automatisation pour exécuter la promotion Bouquet gratuit

Remarque

Remarque

Vous souhaitez apprendre en français ? Dans ce badge, les validations de défi pratique Trailhead se font en anglais. Les traductions sont fournies entre parenthèses à titre de référence. Veillez à copier/coller les valeurs en anglais, puis à définir la langue de votre Trailhead Playground sur Anglais et les paramètres régionaux sur États-Unis. Suivez les instructions ici.

Consultez le badge Trailhead dans votre langue pour découvrir comment profiter de l’expérience Trailhead traduite.

Dans cette étape, nous créons une nouvelle classe et une nouvelle méthode, dans lesquelles nous vérifions le statut de toutes les commandes. Si une commande est activée, nous y ajoutons automatiquement un bouquet bonus.

Lorsque vous examinez le code, gardez à l’esprit que tout texte commençant par // est un commentaire sur le code. Ces commentaires décrivent le but d’un bloc de code (une ou plusieurs lignes de code). Ils aident les développeurs à déterminer ce qu’ils doivent écrire, ce que fait le code existant et ce que le code défaillant est censé faire.

Création d’une classe et d’une méthode

  1. Cliquez sur Configuration et sélectionnez Developer Console.
  2. Cliquez sur File | New | Apex Class (Fichier | Nouveau | Apex Class).
  3. Nommez la classe OrderItemUtility, puis cliquez sur OK.
  4. Remplacez le code existant par le code suivant :
    //Create the class
    public class OrderItemUtility {
        
        //Create the method that will add free bonus bouquet when order is activated
        public static void addBonusBouquet(List<Order> ordersFromTrigger) {
      
            //TO DO 3.1: Determine if we have a bonus product and get its ID to add to the order
            
                //TO DO 2.1: Create a list to store any new bouquets we'll insert later
      
                //TO DO 2.2: Loop over orders in ordersFromTrigger, for each order (called currentOrder) do something
      
                    //TO DO 2.3: Verify the order status is 'Activated'
      
                        //TO DO 2.4: Create a new bouquet and set values
      
                        //TO DO 2.5: Add the freeBouquet sObject to your list
      
                    //TO DO 2.6: Close the "if" and "for loop" sections
      
                //TO DO 3.2: Use DML to add the new list of newBouquets
      
            //TO DO 3.3: Close the if section
      
        } //end method
    } //end class
  5. Cliquez sur File | Save (Fichier | Enregistrer) pour enregistrer le fichier.

Ajout d’une automatisation pour créer un nouveau bouquet

Nous allons maintenant ajouter une automatisation à la classe. Après avoir collé les lignes de code supplémentaires, vous remarquerez peut-être qu’un commentaire sur le code (//) a été ajouté à la ligne vide. N’oubliez pas de supprimer ce commentaire supplémentaire avant de coller votre code.

  1. Créez une liste pour stocker de nouveaux bouquets bonus.

    Dans votre classe, collez le code suivant sous l’en-tête //TO DO 2.1 :

    List<OrderItem> newBouquets = new List<OrderItem>();
  2. Utilisez une boucle for pour parcourir les commandes envoyées à partir d’un déclencheur (nous créerons ce déclencheur plus tard).

    Dans votre classe, collez le code suivant sous l’en-tête //TO DO 2.2 :

    for(Order currentOrder : ordersFromTrigger) {

    Il s’agit de la première partie de la boucle for. Elle prend toutes les commandes du déclencheur et les ajoute à la liste ordersFromTrigger. La boucle for évalue chaque commande et nomme la commande currentOrder.

    Remarque

    Vous remarquerez peut-être que nous n’avons qu’une seule accolade ( { ) ici. C’est parce qu’il nous reste des choses à faire avec cette commande avant de nous arrêter. Nous fermerons la boucle for plus tard dans cette étape.

  3. Examinons maintenant chaque commande (en utilisant la variable currentOrder que nous avons créée) et demandons-nous : La commande est-elle activée ? Si c’est le cas, une action est requise. Si ce n’est pas le cas, nous passons à la commande suivante et nous nous posons la même question.

    Dans votre classe, collez le code suivant sous l’en-tête //TO DO 2.3 :

    if(currentOrder.Status == 'Activated') {

    Comme pour le code de la boucle for, il n’y a ici qu’une seule accolade. Nous ajouterons l’autre après avoir terminé tout ce que nous voulons faire pour chaque commande activée.

  4. Lorsque nous trouvons une commande activée, nous créons un sObject pour un nouvel élément OrderItem.

    Dans votre classe, collez le code suivant sous l’en-tête //TO DO 2.4 :

    OrderItem freeBouquet = new OrderItem(
        OrderId = currentOrder.id, //this is the order we're linking the bouquet to
        //PricebookEntryId = entry.id,
        numberOfFlowers__c = 3,
        description = 'FREE Bouquet',
        Quantity = 1,
        colorTheme__c = 'Spectacular Sunset',
        percentOfOpening__c = 0,
        UnitPrice = 0.00
    );

    Ici, nous créons le sObject OrderItem, appelé freeBouquet, puis nous attribuons des valeurs à ses champs.

  5. Ajoutons ensuite le sObject à la liste que nous avons créée dans //TO DO 2.1.

    Dans votre classe, collez le code suivant sous l’en-tête //TO DO 2.5 :

    newBouquets.add(freeBouquet);

    Nous utilisons la méthode add intégrée à Apex, ce qui facilite l’ajout d’un élément à une liste.

    newBouquets.add(freeBouquet) ;

    Dans cette instruction, newBouquets est le nom de la liste, add est la méthode et freeBouquet (entre parenthèses) est le sObject qui est ajouté à la liste newBouquets.

  6. Enfin, nous devons mettre fin à l’instruction if (le code qui est exécuté uniquement pour les commandes activées) et la boucle for (le code qui est exécuté pour chaque commande lorsque la boucle parcourt toutes les commandes activées).

    Dans votre classe, collez le code suivant sous l’en-tête //TO DO 2.6 :

        } //end if
    } //end for loop

    Votre fichier de classe doit maintenant ressembler à ceci :

    //Create the class
    public class OrderItemUtility {
      
        //Create the method that will add free bonus bouquet when order is activated
        public static void addBonusBouquet(List<Order> ordersFromTrigger) {
        
            //TO DO 3.1: Determine if we have a bonus product and get its ID to add to the order
      
                //TO DO 2.1: Create a list to store any new bouquets we'll insert later
                List<OrderItem> newBouquets = new List<OrderItem>();
            
                //TO DO 2.2: Loop over orders in ordersFromTrigger, for each order (called currentOrder) do something
                for(Order currentOrder : ordersFromTrigger) {
                
                    //TO DO 2.3: Verify the order status is 'Activated'
                    if(currentOrder.Status == 'Activated') {
                    
                        //TO DO 2.4: Create a new bouquet and set values
                        OrderItem freeBouquet = new OrderItem(
                            OrderId = currentOrder.id, //this is the order we're linking the bouquet to
                            //PricebookEntryId = entry.id,
                            numberOfFlowers__c = 3,
                            description = 'FREE Bouquet',
                            Quantity = 1,
                            colorTheme__c = 'Spectacular Sunset',
                            percentOfOpening__c = 0,
                            UnitPrice = 0.00
                        );
                    
                        //TO DO 2.5: Add the freeBouquet sObject to your list
                        newBouquets.add(freeBouquet);
                    
                    //TO DO 2.6: Close the "if" and "for loop" sections
                    } //end if
                } //end for loop
                
                //TO DO 3.2: Use DML to add the new bouquet to the Order
                
            //TO DO 3.3: Close the if section
            
        } //end method
    } //end class
  7. Cliquez sur File | Save (Fichier | Enregistrer) pour enregistrer la classe OrderItemUtility.

Dans l’unité suivante, vous apprendrez à obtenir et à envoyer des données à Salesforce et vous créerez un déclencheur. Vous allez ensuite pouvoir tester votre code, la partie la plus amusante !

Formez-vous gratuitement !
Créez un compte pour continuer.
Qu’est-ce que vous y gagnez ?
  • Obtenez des recommandations personnalisées pour vos objectifs de carrière
  • Mettez en pratique vos compétences grâce à des défis pratiques et à des questionnaires
  • Suivez et partagez vos progrès avec des employeurs
  • Découvrez des opportunités de mentorat et de carrière