Suivez votre progression
Accueil Trailhead
Accueil Trailhead

Construction de votre premier package déverrouillé

Objectifs de formation

Une fois cette unité terminée, vous pourrez :
  • Vous familiariser avec les commandes CLI pour l’empaquetage.
  • Décrire les cas d’utilisation de base d’empaquetage.
  • Empaqueter l'exemple d'application DreamHouse et l’installer dans un Trailhead Playground.

Pourquoi nous adorons le développement de packages

Nous pensons que l’empaquetage est l'une des nouvelles fonctionnalités les plus intéressantes pour les développeurs de la plate-forme Salesforce. Il rivalise avec certaines innovations révolutionnaires bien connues, comme le pain de mie, le téléphone mobile et le service de home vidéo. Mais au cas où vous n’êtes pas encore convaincu, résumons les avantages clés que nous avons appris jusqu'à présent. Développement de package :

  • Suit les meilleures pratiques concernant le cycle de vie du développement logiciel. Il est compatible avec les nouvelles fonctionnalités de Salesforce DX : les projets, les commandes de développement pilotées par la source et les organisations test ont été conçus spécialement pour l'empaquetage.
  • Regroupe toutes les modifications que vous suivez entre les étapes du cycle de vie dans un artefact par version.
  • Facilite le traitement des nouvelles demandes de fonctionnalités. Ajoutez, mettez à jour et supprimez en tout simplicité des composants dans votre package.
  • Fournit un historique d'audit amélioré, ce qui vous permet de suivre et de comprendre plus facilement les modifications apportées à votre organisation de production.
  • Organise la source. Il est beaucoup plus facile de savoir quels composants appartiennent à quelles applications et fonctionnalités.
  • Favorise le développement itératif et modulaire.
  • Prend en charge les interdépendances entre les packages déverrouillés. Un seul package déverrouillé peut dépendre de plusieurs packages déverrouillés et de packages classiques.
  • Prend en charge l'intégration continue et la livraison continue car les commandes de la CLI d'empaquetage permettent d'automatiser complètement chaque étape du pipeline de déploiement.

Maintenant que vous êtes mis au fait des avantages du développement de package, nous allons vous montrer comment créer un package déverrouillé.

Cas d’utilisation d’empaquetage simple

Les packages déverrouillés sont parfaitement adaptés aux applications métier internes. Imaginons :

  • Votre groupe d’entreprise Finance souhaite que votre équipe informatique crée une application permettant aux employés de présenter leurs notes de frais. L’équipe décide de la développer et de la livrer à l’aide des packages déverrouillés.
  • Votre équipe RH souhaite que votre équipe informatique crée une application permettant aux employés de référer des recrues potentielles. Les employés utiliseront l’application de recommandation pour publier des offres d’emploi, référer leurs amis et obtenir des bonus de recommandation. L’équipe décide de la développer et de la livrer à l'aide des packages déverrouillés.

Pour chacun de ces cas, vous commencez un tout nouveau projet, et toutes vos sources sont contenues dans le format de projet Salesforce DX (et consacrées à votre système de contrôle de version). Lorsque vous êtes prêt à livrer l'une de ces applications, vous créez un package déverrouillé que vous pouvez tester sur une organisation test ou une sandbox, et ensuite l'installer dans votre organisation de production. Et lorsque l’équipe a besoin d’une nouvelle fonctionnalité; vous pouvez l’ajouter et créer une nouvelle version de package. Facile. Un jeu d’enfant.

Configuration de votre environnement

Avant de continuer, assurez-vous d'avoir tout ce dont vous avez besoin pour relever le défi.

  • Avez-vous déjà configuré une organisation Dev Hub et installé Salesforce CLI ? Visitez cette unité dans le Développement d’application avec le module Salesforce DX pour plus de détails.
  • Avez-vous un compte GitHub ?
  • Avez-vous activé l’empaquetage dans votre organisation Dev Hub ? Dans Configuration, saisissez Dev Hub dans la case Recherche rapide et sélectionnez Dev Hub. Cliquez sur Activer les packages déverrouillés et les packages gérés de deuxième génération.

Code source DreamHouse sur Git

À des fins de démonstration, supposons que vous construisez et fournissez l'application DreamHouse à l'une de vos équipes commerciales.

Si vous utilisez actuellement les fonctionnalités et les outils de Salesforce DX, vous connaissez peut-être déjà l’exemple de référentiel DreamHouse. DreamHouse est une application autonome qui intègre de nombreuses fonctionnalités disponibles dans Salesforce Platform. Elle utilise les composants Lightning, Apex, Notifications, Einstein, Process Builder et plus encore. Elle permet aux utilisateurs de rechercher des propriétés et de contacter des courtiers immobiliers en ligne.

Pour pouvoir vous concentrer sur l'empaquetage, déroulez le code source de DreamHouse et les fichiers de projet Salesforce DX qui ont déjà été créés. Bien que cet exemple utilise un package, un projet Salesforce DX peut avoir plusieurs packages. Vous pouvez isoler différents packages en fonction de la structure du répertoire, tout en partageant des composants dans des cas appropriés.

En créant un package pour cette application, vous pouvez facilement l'installer dans des organisations test, des sandbox UAT et des organisations de production tout en itérant le cycle de vie du développement.

Nous vous guiderons tout au long du processus à l’aide des outils spécialement conçus pour le développement de packages.

Vous devez obtenir le code source de l'application DreamHouse.

  1. Téléchargez la source à partir du dépôt GitHub de DreamHouse.
  2. Cliquez sur Cloner ou télécharger.
  3. Copiez le lien HTTPS dans le dépôt.
  4. Dans une fenêtre de commande, accédez au répertoire dans lequel vous souhaitez placer le code source, puis exécutez cette commande.
    git clone https://github.com/dreamhouseapp/dreamhouse-sfdx.git

Notez que la source est dans la structure de projet Salesforce DX et contient un fichier de projet DX et une définition d'organisation test. Ne vous inquiétez pas si votre version du projet semble un peu différente car le dépôt DreamHouse est continuellement mis à jour.

Affiche la structure complète du répertoire dreamhouse-sfdx si vous deviez l'ouvrir depuis Finder ou Windows Explorer.

Création d’un package et d’une version de package

Si vous suivez ce parcours depuis un certain temps, il est probable que vous soyez déjà connecté à votre organisation Dev Hub.

  1. Dans la fenêtre de commande, vérifions que l'organisation Dev Hub est connectée.
    sfdx force:org:list

    La sortie de cette commande répertorie toutes les organisations auxquelles vous êtes connecté, notamment Dev Hub, Trailhead Playgrounds et les organisations test. Le (D) indique votre organisation Dev Hub par défaut. Si vous voyez un (U), toutes les commandes CLI vont à l’encontre de ce nom d’utilisateur par défaut.

    === Orgs
         ALIAS       USERNAME                         ORG ID              CONNECTED STATUS
    ───  ──────────  ───────────────────────────────  ──────────────────  ────────────────
    (D)  DevHub      myDevHub@example.com             00DB0000000Ige5MAC  Connected
         MyTP        myName@cunning-bear-311000.com   00D6A000000fH8CUAU  Connected
         TestingOrg  name@example.com                 00DB0000000Im58MAC  Connected
    
    ALIAS     SCRATCH ORG NAME  USERNAME             ORG ID              EXPIRATION  DATE
    ────────  ────────────────  ───────────────────  ──────────────────  ────────────────
    Scratch1  myAcme            test@example.com     00DZ000000N8ItoMAF  2018-03-01

    Si vous avez terminé le Développement d'applications avec le module Salesforce DX, vous devriez voir que vous êtes connecté à une organisation Trailhead Playground. Vous pouvez également voir une ou plusieurs organisations test que vous avez créées pour compléter le défi pratique.

    Si votre Dev Hub n’est pas connecté, connectez-vous :
    sfdx force:auth:web:login -d -a DevHub
  2. Passez au répertoire dreamhouse-sfdx.
  3. Ouvrez sfdx-project.json dans votre éditeur de texte favori.
    DreamHouse est un projet open-source auquel beaucoup de personnes contribuent. Pour être sûr de réussir le défi, assurons-nous d’abord que votre fichier de projet ressemble bien à celui-ci.
    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "44.0"
    }
  4. Si nécessaire, supprimez certains des paramètres, notamment id, versionName et versionNumber. Mettez à jour sourceApiVersion pour qu'il corresponde à la version de la CLI de Salesforce. N'oubliez pas de l'enregistrer !

Pourquoi n’utilisons-nous pas un espace de nom dans cet exemple ?

Bien qu'un espace de nom de package soit facultatif pour les packages déverrouillés, en inclure un vous permet de garder les composants du package organisés. Toutefois, étant donné que les espaces de noms nécessitent une configuration et une prévoyance supplémentaires, nous allons les ignorer dans cette unité.

Important

Important

Si vous déplacez des métadonnées de votre soupe heureuse vers un package déverrouillé, créez vos packages déverrouillés sans espace de noms. Ainsi, lorsque les métadonnées sont déplacées d’un état non empaqueté à un package déverrouillé, le nom de l’API des éléments de métadonnées ne change pas.

Création du package

Lorsque vous avez téléchargé l'application DreamHouse à partir de GitHub, vous avez extrait tous les fichiers source dans votre répertoire de projet. Vous pouvez maintenant créer le package de base sans tambour ni trompette.

Remarque

Remarque

Cette section fournit le flux de travail pour la création d'un package à l'aide du référentiel d'exemples DreamHouse. Si vous envisagez de relever le défi pratique à la fin de cette unité, attendez et suivez les instructions en utilisant ce flux de travail comme référence si nécessaire.

  1. Créez un package déverrouillé sans espace de nom et indiquez l'alias ou le nom d'utilisateur de votre organisation Dev Hub s'il n'est pas déjà défini par défaut :
    sfdx force:package:create --name dreamhouse --description "My Package" --packagetype Unlocked --path force-app --nonamespace --targetdevhubusername DevHub
    • --name est le nom du package. Ce nom est un alias que vous pourrez utiliser par la suite pour exécuter des commandes d’empaquetage.
    • --path est le dossier dans lequel se trouve le contenu du package.
    • --packagetype indique le type de package que vous créez, en l’occurrence déverrouillé.

    L’alias du package est maintenant associé à l’ID du package (0Ho). Plus besoin de se souvenir d’identifiant cryptiques ! Mais si vous êtes doués avec les chiffres, vous pouvez continuer à utiliser les ID de package lorsque vous exécuterez des commandes.

    === Ids
    NAME                  VALUE
    ───────────────────── ──────────────────
    Package Id           0Hoxxx
  2. Ouvrez sfdx-project.json.

    Terminé ! Dans packageDirectories, vous voyez le nom du package que vous avez défini, avec des espaces prévus pour le nom et le numéro de la version. La commande crée également une section packageAliases qui mappe le nom du package (alias) dans son ID de package correspondant (0Ho).

    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true,
             "package": "dreamhouse",
             "versionName": "ver 0.1",
             "versionNumber": "0.1.0.NEXT"
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "44.0",
       "packageAliases": {
          "dreamhouse": "0Hoxxx"
       }
    }
    Conseil

    Conseil

    Si vous oubliez l’alias ou l’ID du package, vous pouvez lister tous les packages que vous avez créés dans votre Dev Hub en exécutant sfdx force:package:list.

Création d'une organisation test pour tester votre version du package

Créons une organisation test dans laquelle installer le package déverrouillé, avec l'alias MyScratchOrg. Créer une organisation de test est une manière pratique d’effectuer la phase de test unitaire du cycle de développement de package.

sfdx force:org:create --definitionfile config/project-scratch-def.json --durationdays 30 --setalias MyScratchOrg -v DevHub

Utilisez la définition par défaut de l'organisation test, qui crée une organisation test Developer Edition, la même édition que celle de Trailhead Playground. Notez que la durée est fixée à 30 jours, ce qui vous laisse suffisamment de temps pour terminer votre travail dans un sprint de développement (ou compléter ce module Trailhead).

Création de la version de package et installation dans votre organisation test

Lorsque vous êtes prêt à publier le package, vous créez un instantané de celui-ci, appelé une version de package. L'installation de la version du package est similaire au déploiement de métadonnées. Souvenez-vous, une fois créée, une version du package sert d'artefact immuable contenant un ensemble spécifique de métadonnées.

  1. Ouvrez sfdx-project.json avec votre éditeur de texte favori pour mettre à jour les options de version du package.
  2. Modifiez le versionName en Version 1.0, et le versionNumber en 1.0.0.NEXT.

    Le répertoire force-app est le (seul) répertoire de packages par défaut, donc toute source incluse dans celui-ci devient partie intégrante du package. Une fois mis à jour, le fichier sfdx-project.json ressemble à ceci :

    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true,
             "package": "dreamhouse",
             "versionName": "Version 1.0",
             "versionNumber": "1.0.0.NEXT"
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "44.0",
       "packageAliases": {
          "dreamhouse": "0Hoxxx"
       }
    }
  3. Enregistrez le fichier sfdx-project.json.
  4. Dans le répertoire dreamhouse-sfdx, créez la version du package, qui associe les métadonnées au package.
    sfdx force:package:version:create -p dreamhouse -d force-app -k test1234 --wait 10 -v DevHub
    • -p est l’alias du package mappé à son ID.
    • -d est le dossier dans lequel se trouve le contenu du package.
    • -k est la clé d'installation qui empêche que des personnes non autorisées n’installent votre paquet.

    Il est normal que le processus de création de la version de package prenne plusieurs minutes.

    Successfully created the package version [08cxxx]. Subscriber Package Version Id: 04txxx.
    Package Installation URL: https://login.salesforce.com/packaging/installPackage.apexp?p0=04txxx
    As an alternative, you can use the "sfdx force:package:install" command.
  5. Vous remarquerez que la section packageAliases dans sfdx-project.json a une nouvelle entrée.
    "packageAliases": {
       "dreamhouse": "0Hoxxx",
       "dreamhouse@1.0.0-1": "04txxx"
    }
  6. Utilisez l’alias de la version du package pour installer la version de package dans l'organisation test que vous avez créée précédemment.
    sfdx force:package:install --wait 10 --publishwait 10 --package dreamhouse@1.0.0-1 -k test1234 -r -u MyScratchOrg

    Cela peut prendre plusieurs minutes pour qu'une version de package nouvellement créée soit disponible dans l'organisation test. L'installation commence une fois que la version du package est disponible.

  7. Une fois le package installé, ouvrez l'organisation test pour afficher le package.
    sfdx force:org:open -u MyScratchOrg
  8. Dans Configuration, saisissez Packages installés dans la case Recherche rapide et sélectionnez Packages installés.Affiche la boîte de dialogue Packages installés avec "dreamhouse&#34 répertorié sous Packages installés. Vous pouvez également visualiser le nom de Dev Hub, la version du package et la date et l'heure d'installation.

    Comme il s'agit d'un package déverrouillé, vous pouvez effectuer des modifications directement dans l'organisation test et dérouler les métadonnées mises à jour, puis créer une nouvelle version de package. Mais pour l'instant, l'application DreamHouse a déjà tout ce dont vous avez besoin, nous pouvons donc poursuivre et publier le package.

Publication de la version de package

Une fonctionnalité dont nous n'avons pas encore parlé est l'état du package. Les packages ont un statut bêta lorsque vous les créez initialement. Vous ne pouvez pas installer de packages bêta dans une organisation de production. C'est une garantie pour vous assurer que la version du package que vous publiez est prête pour la production. Lorsque vous savez qu’une version est prête pour la publication, vous pouvez définir la version de package comme publiée.

sfdx force:package:version:promote -p dreamhouse@1.0.0-1 -v DevHub

Installation de la version de package dans une organisation

Enfin, installez la version de package dans votre organisation. Souvenez-vous que vous pouvez installer des versions de package bêta dans des organisations test, des sandbox et des Trailhead playgrounds (organisations DE). Vous pouvez installer une version de package publiée dans n'importe quelle organisation.

  1. Pour installer la version de package dans votre Trailhead playground, connectez-vous.
    sfdx force:auth:web:login -a MyTP

    Nous vous suggérons de créer un alias pour le Trailhead playground, dans cet exemple MyTP. Une fois que vous vous connectez à une organisation, la CLI mémorise vos identifiants. Il vous suffit de vous souvenir de l'alias de l'organisation lors de l'émission des commandes suivantes.

    Si vous ne connaissez pas le nom d'utilisateur et le mot de passe de votre Trailhead Playground, consultez Obtenir votre nom d'utilisateur et réinitialiser votre mot de passe.

  2. Installez la version du package dans Trailhead playground.
    sfdx force:package:install --wait 10 --publishwait 10 --package dreamhouse@1.0.0-1 -k test1234 -r -u MyTP
  3. Ouvrez votre Trailhead playground.
    sfdx force:org:open -u MyTP
  4. Dans votre Trailhead playground, à partir de Configuration, saisissez Packages installés dans la case Recherche rapide, puis sélectionnez Packages installés.

    Vous recevrez également un e-mail confirmant que vous avez correctement installé le package déverrouillé.

  5. Cliquez sur dreamhouse, puis sur Afficher les composants.Lorsque vous cliquez sur Afficher les composants pour dreamhouse, une liste de tous les composants de package s’affiche.
  6. Depuis le lanceur d’application, ouvrez l’application DreamHouse et explorez certaines de ses fonctionnalités.
Affiche un exemple d’e-mail que vous recevez lorsque le package dreamhouse est installé avec succès dans Trailhead Playground.