Pour débuter avec SFDX, il est important de mettre en place certaines bases, afin de pouvoir utiliser une Scratch Org. On peut utiliser l’interface graphique de VSCode ou les lignes de commandes.
Il vous faudra une devhub (une organisation Salesforce qui vous permettra de créer des Scratch Org), si vous n’en avez pas vous pouvez créer une org de développement (gratuitement) : https://developer.salesforce.com/signup
Pour activer la Dev Hub dans une organisation :
- Connectez-vous à votre organisation Salesforce
- Dans la Configuration, saisissez dans la case Recherche rapide, puis sélectionnez “Dev Hub”.
- Pour activer la Dev Hub, cliquez sur Activer (une fois la Dev Hub activée, vous ne pouvez pas la désactiver.)
Il vous faudra :
- SFDX CLI : https://developer.salesforce.com/tools/sfdxcli
- VSCode : https://code.visualstudio.com/
Objectif de l’article :
- Créer un objet et un champ dans une Scratch Org.
- Récupérer l’objet et le champ (metadata) en local sur votre machine.
- Créer un champ en local puis le déployer sur la Scratch Org
Voici un exemple d’étapes à réaliser avec le CLI (ligne de commande):
0/ Connexion à votre DevHub
sfdx force:auth:web:login -r https://test.salesforce.com
(Pour vérifier si vous êtes bien connecté : sfdx force:org:list)
1/ Création du répertoire (de votre projet)
sfdx force:project:create –projectname nomDeVotreProjet –manifest
2/ Création d’un fichier de script afin d’éviter de refaire les commandes à chaque création de Scratch Org :
Exemple : setupScratchOrg.sh (sous mac/linux)
Chaque commande devrait être ajoutée dans ce fichier au fur et à mesure de l’avancement de votre projet (création de Scratch Org, affectation des permissions sets, installation de packages, ouverture de la scratch org…)
Pour l’exécuter sur mac ou linux dans un terminal :
sh setupScratchOrg.sh
Vous pouvez faire de même avec un Windows, il faudra changer d’extension et l’exécuter dans une invite de commande :
setupScratchOrg.ps1
3/ La ligne de commande vous permettant de créer votre scratch org :
sfdx force:org:create -f config/project-scratch-def.json -a nomDeLaScratchOrg -s -w 20
(Pour vérifier si la scratch org s’est bien créée : sfdx force:org:list)
4/ Ouvrir la scratch org avec la ligne de commande
sfdx force:org:open
5/ Création de l’objet depuis l’interface et récupération en local :
Pour mon exemple, j’ai créé un nouvel objet Technologie__c (en bas de l’article un lien vers la création des objets dans Salesforce), un onglet lié à cet objet et une application pour afficher l’onglet.
sfdx force:source:pull
Passons à la création d’un champ sur l’objet que vous avez créé et une nouvelle fois faites un pull
6/ Création d’un champ depuis le local et envoi vers la Scratch Org
Vous pouvez copier-coller le fichier récupérer précédemment dans le même répertoire puis renommer le avec le nom que vous voulez, dans mon exemple j’ai besoin d’un nouveau champ Archive__c : Boolean.
Il faudra modifier l’intérieur du fichier pour correspondre à votre besoin :
sfdx force:source:push
Votre nouveau champ doit être présent dans votre Scratch Org, attention, il est possible que vous deviez faire des actions manuelles afin de donner les droits de visibilités sur le champ.
Si vous n’avez pas beaucoup de champ à créer, je vous conseille de passer par l’interface de Salesforce et de récupérer via un pull.
Le petit mot de la fin :
Voilà, les bases de SFDX ont été entrevues, très rapidement je vous l’accorde ! Il y a tellement à dire, ça sera l’occasion de faire d’autres articles.
Exemple, maintenant que nous avons ce code en local et que nous pouvons créer, développer en Scratch Org, comment tout déployer vers une sandbox/production ?!
Conseils:
Lorsque vous avez un doute sur une commande ou vous voulez consulter les paramètres disponibles de celle-ci, vous pouvez ajouter un « -h » à la fin de la commande pour avoir une aide détaillée.
Exemple :
sfdx force:org:create -f config/project-scratch-def.json -a nomDeLaScratchOrg -s -w 20 -h
Site pour apprendre l’écosystème Salesforce :
https://trailhead.salesforce.com/
Apprendre la création d’un objet :
https://trailhead.salesforce.com/fr/content/learn/modules/data_modeling/objects_intro
Fichier de création de Scratch Org automatisé :
setupScratchOrg.sh
echo ### Création de la Scratch Org ### sfdx force:org:create -f config/project-scratch-def.json -a CartoTechno -s -w 20 sfdx force:data:record:update -s User -w "Name='User User'" -v "LanguageLocaleKey=en_US" echo ### Pousser le code vers la Scratch Org ### sfdx force:source:push -u CartoTechno echo ### Ouvrir la Scratch Org ### sfdx force:org:open -u CartoTechno # Il est possible de rajouter autant de commandes que souhaité afin de gagner du temps lors de la création de la Scratch Org.