Skip to main content

Développement et test locaux des modifications

Objectifs de formation

Une fois cette unité terminée, vous pourrez :

  • Créer une branche et valider les modifications dans un référentiel de contrôle source
  • Autoriser une sandbox à l’aide des extensions Salesforce pour VS Code
  • Récupérer des modifications à partir d’une sandbox

Configuration d’un référentiel de code

L’équipe de développement de Zephyrus Relocation Services héberge son code et examine son travail dans GitHub. Elle valide les modifications dans le référentiel source pour identifier et fusionner tout conflit de personnalisation avant de poursuivre son travail.

Remarque

Important : l’objectif principal de ce module est de présenter le flux de travail du modèle de développement organisationnel. Ce module ne comporte pas de défi pratique. Cependant, nous comprenons que les Trailblazers n’ont pas tendance à rester en retrait. Si vous voulez essayer de suivre les étapes présentées dans ce module, nous fournissons des indications (notes) lorsque les instructions que vous devez appliquer diffèrent de celles qui concernent Ella et Juan. Gardez vos sandboxes pour le « vrai » travail de développement. Avant de commencer à travailler, inscrivez-vous à une organisation Developer Edition ou à un Trailhead Playground que vous utiliserez à la place de chaque sandbox.

Création du référentiel de contrôle source

Le référentiel est l’endroit où Juan organise les fichiers sources du projet de développement. Juan crée ensuite un projet Salesforce DX et l’ajoute au référentiel.

Donnez au référentiel un nom explicite qui fait référence à son objectif. Étant donné qu’il s’agit d’un projet de développement interne, Juan crée un référentiel privé en utilisant le compte d’entreprise de Zephyrus appelé language-courses.

Création d’un projet Salesforce DX

  1. Ouvrez VS Code.
  2. Dans le menu, sélectionnez View (Afficher) | Command Palette (Palette de commandes).
  3. Dans la zone de recherche de la palette de commandes, saisissez sfdx project (projet sfdx).
  4. Sélectionnez SFDX :. Create Project with Manifest (SFDX : créer un projet avec un manifeste).
  5. Utilisez le même nom que votre référentiel GitHub, language-courses, puis cliquez sur Enter (Entrée).
  6. Cliquez sur Créer un projet.

Ajout de fichiers de projet au référentiel dans GitHub

  1. Dans VS Code, ouvrez le répertoire du projet DX, puis cliquez sur l’icône de contrôle source Icône de contrôle source.
  2. Cliquez sur Initialize Repository (Initialiser le référentiel).
  3. Passez la souris sur Changes (Modifications), puis cliquez sur + pour organiser l’ensemble des modifications.
  4. Acceptez la branche par défaut dans laquelle valider le référentiel, telle que main (principale).
  5. Saisissez un message de validation, puis cliquez sur l’icône de validation Icône de validation, représentant une coche.
  6. Cliquez sur Publish Branch (Publier la branche).
  7. Confirmez l’emplacement où vous souhaitez la publier.

Création de personnalisations relatives à de nouvelles exigences

Calvin a rencontré l’équipe commerciale pour recueillir les nouvelles exigences relatives à la prochaine version. L’équipe commerciale souhaite être avertie lorsqu’un cours de langue est ajouté ou modifié, et elle souhaite savoir qui dispense chaque cours.

Juan estime que cette demande est un excellent moyen pour l’équipe de se familiariser avec le modèle de développement organisationnel. Bien qu’il puisse prendre en charge des scénarios de développement bien plus complexes, cet ensemble d’étapes simples peut aider l’équipe à comprendre le flux de travail du modèle.

La mission d’Ella est de créer un objet personnalisé se rapportant au formateur du cours de langue et de le lier à l’enregistrement du cours. Juan crée un déclencheur qui envoie un e-mail de notification à l’alias de l’équipe commerciale. Voici les étapes :

Clonage du référentiel

Tout d’abord, Ella clone le référentiel GitHub et crée sa propre branche.

  1. Accédez au référentiel que vous souhaitez cloner, par exemple https://github.com/zephyrus/language-courses.
    Ce référentiel n’existe pas. Il ne sert qu’à illustrer nos propos. Si vous comptez suivre les instructions de votre côté, remplacez au cours de ces étapes l’exemple de référentiel par un autre que vous avez créé. De plus, vous simulerez le travail de deux développeurs, Juan et Ella. Nous suggérons de créer deux répertoires parents distincts pour séparer leur travail de développement. Par exemple, si vous effectuez le travail de développement d’Ella, il vous faudra cloner le référentiel dans un dossier nommé org-dev-ella. Lorsque vous effectuerez le travail de développement de Juan, il vous faudra cloner le référentiel dans un dossier nommé org-dev-juan.
    1. Cliquez sur Cloner ou télécharger.
    2. Copiez l’URL au format HTTPS.
  2. À partir de la palette de commandes dans VS Code, sélectionnez Git: Clone (Git : cloner).
  3. Dans Repository URL (URL du référentiel), collez l’URL du référentiel, puis cliquez sur Enter (Entrée). Ella clone le référentiel que Juan a créé : https://github.com/zephyrus/language-courses.git.
  4. Dans votre système de fichiers local, accédez à l’endroit où vous souhaitez placer le référentiel GitHub, puis cliquez sur Select Repository Location (Sélectionner l’emplacement du référentiel).
  5. Cliquez sur Open Repository (Ouvrir le référentiel)
  6. Dans la palette de commandes, sélectionnez Git:. Create Branch (Git : créer une branche).
  7. Saisissez le nom de votre branche. Ella nomme sa branche ella-custom-object. Elle travaille désormais dans sa propre branche.

Autorisation de la sandbox et connexion à celle-ci

Ensuite, Ella autorise (se connecte à) sa Developer Sandbox à l’aide de VS Code.

Remarque

Si vous suivez les étapes de votre côté, utilisez une organisation Developer Edition ou Trailhead Playground. À l’étape 3, sélectionnez Project Default (Paramètre par défaut du projet) pour utiliser login.salesforce.com comme URL de connexion.

  1. Dans la zone de recherche de la palette de commandes, saisissez sfdx authorize (sfdx autoriser).
  2. Sélectionnez SFDX :. autoriser une organisation.
  3. Sélectionnez Sandbox pour l’URL de connexion.
  4. Saisissez un alias pour la sandbox, par exemple, dev_sandbox.
  5. Connectez-vous à l’aide de vos nom d’utilisateur et mot de passe sandbox.

Création d’objets personnalisés

Ensuite, Ella crée les objets personnalisés Language Course (Cours de langue) et Language Instructor (Formateur de langue) dans sa Developer Sandbox.

  1. Dans Configuration, cliquez sur l’onglet Gestionnaire d’objet.
  2. Cliquez sur Créer | Objet personnalisé dans le coin supérieur droit.
  3. Pour Label (Étiquette), saisissez Language Course Instructor (Formateur du cours de langue). Notez que les champs Object Name (Nom de l’objet) et Record Name (Nom de l’enregistrement) sont automatiquement renseignés.
  4. Pour Plural Label (Étiquette au pluriel), saisissez Language Course Instructors (Formateurs du cours de langue).
  5. Cochez la case Lancer l’assistant Nouvel onglet personnalisé, puis cliquez sur Enregistrer.
  6. Sélectionnez le style d’onglet souhaité (Ella choisit Presenter [Présentateur]) et cliquez sur Next (Suivant) jusqu’à ce que vous puissiez enregistrer l’objet.
Remarque

Conseil : vous pouvez également utiliser les commandes schema generate afin de générer des fichiers sources locaux pour les nouveaux objets, champs, onglets et événements de plate-forme personnalisés. Dans le cadre de ce module, nous vous recommandons d’utiliser la page de configuration, mais essayez les commandes plus tard, nous pensons qu’elles vous plairont !

Définition du champ d’objet personnalisé

Ensuite, Ella définit le champ d’objet personnalisé sur l’objet Language Course (Cours de langue), qui fait référence à l’objet Language Course Instructor (Formateur du cours de langue).

Remarque

Si vous suivez les étapes de votre côté, sachez qu’Ella a créé l’objet Language Course (Cours de langue) dans le cadre d’un autre module. Ce module suppose que cet objet existe déjà dans la Developer Sandbox d’Ella. Créez l’objet personnalisé suivant avant de continuer :

  1. Dans Configuration, cliquez sur l’onglet Gestionnaire d’objet.
  2. Cliquez sur Créer | Objet personnalisé dans le coin supérieur droit.
  3. Saisissez Cours de langue dans le champ Étiquette. Notez que les champs Object Name (Nom de l’objet) et Record Name (Nom de l’enregistrement) sont automatiquement renseignés.
  4. Saisissez Cours de langue dans le champ Étiquette au pluriel.
  5. Cochez la case Lancer l’assistant Nouvel onglet personnalisé, puis cliquez sur Enregistrer.
  6. Sélectionnez le style d’onglet souhaité (Ella choisit Chalkboard [Tableau noir]) et cliquez sur Next (Suivant) jusqu’à ce que vous puissiez enregistrer l’objet. 
  1. Dans Configuration, accédez à Gestionnaire d’objet | Cours de langue.
  2. Cliquez sur Champs & Relations. Notez que certains champs sont déjà présents, notamment un champ nom.
  3. Cliquez sur Nouveau.
  4. Pour Data type (Type de données), sélectionnez Master-Detail Relationship (Relation principal-détails), puis cliquez sur Next (Suivant).
  5. Dans Related To (Associé à), sélectionnez Language Course Instructor (Formateur du cours de langue), puis cliquez sur Next (Suivant).
  6. Renseignez les champs suivants :
    • Étiquette du champ : Course Instructor (Formateur du cours)
    • Description : Teacher for the language course (Enseignant du cours de langue)
  7. Cliquez sur Next (Suivant) jusqu’à ce que vous puissiez enregistrer le champ.

Suivi des modifications dans une liste de modifications

Ella crée une liste de modifications pour le projet afin de consigner ses modifications.

Type de métadonnées Objet Type de modification (Créer, Mettre à jour, Supprimer) Détails
CustomObject Language_Course_Instructor__c Créer Objet permettant de consigner le nom de la personne qui dispense le cours
CustomField Course_Instructor__c Créer Relation principal-détails avec l’objet personnalisé Language_Course__c

Récupération des modifications depuis la Developer Sandbox

Ella transfère les modifications depuis la sandbox vers son projet DX local. Comme Ella suit ses modifications tout au long du processus, elle sait quels éléments récupérer dans sa Developer Sandbox.

Étant donné qu’Ella ne récupère que quelques composants de sa sandbox, elle décide d’utiliser le terminal dans VS Code pour exécuter la commande Salesforce CLI project retrieve start. En s’appuyant sur le répertoire par défaut spécifié dans le projet DX, la CLI place la source dans le dossier force-app. Comme il n’est pas possible d’ajouter un dossier vide dans GitHub, Ella crée le dossier force-app dans le projet DX au sein de son système de fichiers local.

  1. Dans le projet DX sur le système de fichiers local, créez un dossier intitulé force-app.
  2. Dans le terminal de VS Code, exécutez la commande CLI pour récupérer le nouvel objet personnalisé et le nouveau champ personnalisé :
    sf project retrieve start --metadata CustomObject:Language_Course_Instructor__c --metadata CustomField:Language_Course__c.Course_Instructor__c
    Ella utilise --metadata au lieu de --source-dir, car --source-dir ne peut récupérer que les fichiers qui existent déjà sur le système de fichiers. L’objet personnalisé apparaît dans le répertoire force-app/main/default/objectsDans VS Code, le côté gauche affiche la nouvelle structure de répertoire créée après l’utilisation de la commande source:retrieve : force-app/main/default/objects. Le côté droit affiche la fenêtre du terminal dans laquelle la commande a été exécutée ainsi que la sortie CLI résultante.

Validation des modifications dans le référentiel de contrôle source

Ella valide ses modifications dans le référentiel, puis crée un pull request pour informer Juan que ses modifications sont prêtes à être examinées.

  1. Dans VS Code, sélectionnez l’icône de contrôle source Icône de contrôle source.
  2. Saisissez un commentaire de validation, puis cliquez sur l’icône de validation Icône de validation.
  3. Cliquez sur Yes (Oui) pour ajouter et valider les fichiers.
  4. Dans la palette de commandes VS Code, sélectionnez Git: Push To (Git : envoyer vers).
  5. Sélectionnez le référentiel d’origine.

Examen du code

Remarque

Si vous suivez les étapes de votre côté, vous pouvez ignorer cette section.

  1. Créez un pull request. Dans le référentiel GitHub, cliquez sur Compare & pull request (Comparaison et requête d’extraction).
  2. Attribuez des réviseurs. Ella demande à Juan de vérifier et d’approuver ses modifications.
  3. Saisissez un commentaire pour vos réviseurs.
  4. Cliquez sur Create pull request (Créer une requête d’extraction).

Une fois que Juan a vérifié et approuvé le code, Ella fusionne le pull request. Juan sait qu’il peut maintenant commencer son travail sur le déclencheur.

Création du déclencheur

Le déclencheur avertit l’équipe commerciale lorsqu’un module est mis à jour ou qu’un nouveau module est ajouté. Un déclencheur est un morceau de code Apex qui s’exécute avant ou après l’insertion, la mise à jour ou la suppression d’enregistrements d’un type particulier au sein de la base de données de la plate-forme Lightning.

Juan clone le référentiel GitHub qui contient le nouvel objet personnalisé, créant ainsi sa propre branche. Juan crée son déclencheur et le test lui correspondant dans VS Code.

Déploiement du référentiel de projet dans la Developer Sandbox

Tout d’abord, Juan déploie les modifications d’Ella dans sa Developer Sandbox afin que leurs deux environnements soient synchronisés.

Remarque

Si vous suivez les étapes de votre côté, réalisez ces étapes dans le dossier que vous avez créé pour le travail de développement de Juan, tel que org-dev-juan. Utilisez une nouvelle organisation Developer Edition ou un nouveau Trailhead Playground pour la Developer Sandbox de Juan.

  1. Clonez le référentiel GitHub.
  2. Dans VS Code, sélectionnez Git: Create Branch (Git : créer une branche), puis indiquez un nom pour la branche. Juan nomme sa branche juan_apex_trigger.
  3. Sélectionnez SFDX :. autoriser une organisation.
  4. Sélectionnez Sandbox pour l’URL de connexion (test.salesforce.com).
  5. Saisissez un alias pour la sandbox, par exemple, dev_sandbox.
  6. Connectez-vous à l’aide de vos nom d’utilisateur et mot de passe sandbox.
  7. Déployez les modifications d’Ella dans la Developer Sandbox de Juan. Cliquez avec le bouton droit de la souris sur le dossier des objets, puis sélectionnez SFDX: Deploy Source to Org (SFDX : déployer la source dans l’organisation). Juan peut également exécuter la commande Salesforce CLI dans le terminal.
    sf project deploy start --metadata CustomObject:Language_Course_Instructor__c --metadata CustomField:Language_Course__c.Course_Instructor__c

Développement du déclencheur

  1. Dans la branche juan_apex_trigger dans VS Code, créez le répertoire pour placer le déclencheur.
    1. Développez le dossier force-app.
    2. Faites un clic droit sur default (par défaut), puis sélectionnez New Folder (Nouveau dossier).
    3. Saisissez triggers (déclencheurs).
  2. Faites un clic droit sur le dossier triggers (déclencheurs), puis cliquez sur SFDX: Create Apex Trigger (SFDX : créer un déclencheur Apex).
  3. Saisissez le nom de classe LanguageCourseTrigger. Saisissez le code du déclencheur :
    trigger LanguageCourseTrigger on Language_Course__c (after insert, after update, after delete) {
    // <write your own notification code>
    }
  4. Enregistrez le fichier.
  5. Créez un test pour le déclencheur appelé TestLanguageCourseTrigger. En tant que développeur chevronné, Juan s’assure que les exigences de couverture du code sont satisfaites.

Déploiement des modifications dans la Developer Sandbox

Juan déploie le déclencheur pour le valider et le compiler, puis teste qu’il fonctionne correctement avec le nouvel objet.

  1. Dans le terminal VS Code, faites un clic droit sur le dossier triggers (déclencheurs) et sélectionnez SFDX: Deploy Source to Org (SFDX : déployer la source dans l’organisation). Juan peut également exécuter la commande CLI depuis le terminal.
    sf project deploy start --source-dir force-app/main/default/triggers
    Dans VS Code, le côté gauche affiche la nouvelle structure de répertoire créée après l’utilisation de la commande source:deploy pour le déclencheur : force-app/main/default/triggers. Le côté droit affiche la fenêtre du terminal dans laquelle la commande a été exécutée ainsi que la sortie CLI résultante.
  2. Juan vérifie qu’il a capturé toutes les modifications et qu’elles fonctionnent dans la sandbox.
  3. Juan ajoute ses modifications à la liste des modifications.
Type de métadonnées Objet Type de modification (Créer, Mettre à jour, Supprimer) Détails
CustomObject Language_Course_Instructor__c Créer Objet permettant de consigner qui dispense le cours
CustomField Course_Instructor__c
Créer Relation principal-détails avec l’objet personnalisé Language_Course__c
ApexTrigger LanguageCourseTrigger Créer Envoie un e-mail à l’équipe commerciale lorsque l’objet Language_Course__c est créé, mis à jour ou supprimé
ApexClass TestLanguageCourseTrigger Créer Couverture du test Apex pour le déclencheur

Validation des modifications dans le référentiel de contrôle source

Juan valide ses modifications dans le référentiel, puis crée un pull request. Ella procède à la vérification du code.

Planification de la prochaine version

Juan et Ella suivent le même processus pour les personnalisations ultérieures. S’ils développent des personnalisations dans VS Code, telles que le travail de Juan relatif au déclencheur, ils les déploient dans leurs Developer Sandbox à des fins de validation et de test.

Ils utilisent l’interface Setup (Configuration) pour tout le reste, afin de pouvoir profiter des générateurs, des assistants et des interfaces déclaratives. Ensuite, ils transfèrent les modifications de la sandbox vers leurs systèmes de fichiers locaux. Ils valident leurs modifications dans le contrôle source, créent un pull request et demandent une vérification du code avant de fusionner leurs modifications dans la branche principale.

Partagez vos commentaires sur Trailhead dans l'aide Salesforce.

Nous aimerions connaître votre expérience avec Trailhead. Vous pouvez désormais accéder au nouveau formulaire de commentaires à tout moment depuis le site d'aide Salesforce.

En savoir plus Continuer à partager vos commentaires