Skip to main content

Écriture d’une logique métier dans Apex

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. Dans votre Trailhead Playground, veillez (1) à définir les États-Unis comme région, (2) à sélectionner l’anglais comme langue, et (3) à copier et coller uniquement les valeurs en anglais. Suivez les instructions ici.

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

Vidéo de démonstration Trail Together

Vous souhaitez être guidé pas à pas par un expert pendant que vous travaillez sur cette étape ? Regardez cette vidéo qui fait partie de la série Trail Together.

(Ce clip commence à 34 min 00 s, au cas où vous voudriez revenir en arrière et regarder à nouveau le début de l’étape.)

Introduction

Apex est un langage de programmation fortement typé et orienté objet, optimisé pour s’exécuter dans l’architecture mutualisée de Salesforce. Apex permet aux développeurs d’automatiser des processus métier backend complexes et est compilé en bytecode Java.

Le langage Apex est optimisé pour interagir avec les données Salesforce et est étroitement intégré à la couche de persistance Salesforce. Apex fournit un langage SOQL (Salesforce Object Query Language), proche de SQL, pour exécuter des requêtes et des instructions DML (Data Manipulation Language) afin d’effectuer des opérations sur les bases de données avec les objets que vous avez créés précédemment.

Création et déploiement de la classe Apex

  1. Dans Visual Studio Code, sous force-app/main/default, faites un clic droit sur classes et sélectionnez SFDX : Create Apex Class.
    Sélection de SFDX: Create Apex Class.
  2. Dans la palette de commandes Visual Studio Code, nommez la classe HouseService. Cliquez sur Enter (Entrer) | Enter (Entrer).
  3. Remplacez le contenu du fichier par le code suivant :
    public with sharing class HouseService {
        @AuraEnabled(cacheable=true)
        public static List<House__c> getRecords() { 
            try {
                // Create a list of House records from a SOQL query
                List<House__c> lstHouses = [
                    SELECT
                       Id,
                       Name,
                       Address__c,
                       State__c, 
                       City__c,
                       Zip__c
                       FROM House__c
                       WITH USER_MODE
                       ORDER BY CreatedDate
                       LIMIT 10
                    ];
                      return lstHouses;
            }
            // Code to handle exception
            catch (Exception e) {
               throw new AuraHandledException(e.getMessage());
            }
        }
    }  
      
    Points marquants du code Dans ce code, vous créez une classe HouseService qui a une méthode nommée getRecords. La méthode renvoie la liste des enregistrements de maison (sous forme de tableau) en interrogeant l’objet House__c.
    Remarquez que dans la classe Apex HouseService, vous faites apparaître automatiquement l’objet (House__c) que vous avez créé précédemment (à l’étape 2) en tant que classe sans écrire de fichier de classe. De plus, vous pouvez référencer les champs de l’objet House__c sous forme de propriétés sans avoir à les déclarer.
    Nous avons utilisé SOQL pour écrire nos requêtes référençant l’objet et les champs sur l’objet. La requête est compilée et est donc vérifiée au moment de la compilation.
    Vous avez établi un couplage étroit entre le modèle de données et la classe Apex. Vous ne pourrez désormais plus casser le code, car il ne se compilera pas si vous y apportez une modification qui n’est pas compatible avec le modèle de données.
  4. Enregistrez ce fichier.
  5. Faites un clic droit sur HouseService.cls et sélectionnez SFDX : Deploy Source to Org. Un message de confirmation vous indique que la classe Apex a été déployée dans l’organisation. Le déploiement de votre code le compile également sur le serveur.
    Déployez la source dans la sélection d’organisation Salesforce.

Maintenant, testez si cette classe renvoie les résultats de la requête comme prévu à l’aide d’un script anonyme. Un script anonyme est un code Apex qui n’est pas stocké dans les métadonnées, mais qui peut être compilé et exécuté.

Suivez les étapes ci-dessous pour créer un script anonyme à tester.

  1. Créez un fichier nommé dreamhouseapp.apex dans le dossier scripts/apex.
  2. Remplacez le contenu du fichier par le code suivant : System.debug(HouseService.getRecords());
  3. Cliquez sur l’indicateur en affichage tête haute Execute Anonymous Apex (Exécuter le script Apex anonyme) surligné en rose dans la capture d’écran ci-dessous.
    Indicateur en affichage tête haute Execute Anonymous Apex pour exécuter un script Apex.
    Si la classe Apex que vous avez écrite est fonctionnelle, vous voyez les résultats de la requête dans le panneau de sortie illustré ci-dessous. Panneau de sortie affichant les résultats de la requête lors de l’exécution du script Apex.

Apex est opiniâtre, étroitement couplé et optimisé pour fonctionner avec des applications professionnelles qui fonctionnent bien avec Salesforce. Il est rapidement sujet à des échecs au moment de la compilation si des références sont invalides.

Comme il s’intègre à la couche de persistance Salesforce et dispose d’une prise en charge intégrée pour travailler directement avec les données Salesforce sans avoir à associer des couches de données supplémentaires, vous pouvez gagner en productivité. En plus de cela, Apex encourage automatiquement les bonnes pratiques de codage en mettant en application les limites des gouverneurs et les exigences de test.

Ressources

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