SFDX

SFDX – Créer une Scratch Org – Pull – Push

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 :

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

Connexion à l’org créer précédemment (DevHub)

(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

Les fichiers automatiquement créent

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…)

Exemple de mon fichier de création automatique

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

Création de la Scratch Org

(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

Récupération de la commande de “pull” pour l’objet

Passons à la création d’un champ sur l’objet que vous avez créé et une nouvelle fois faites un pull

Récupération du champ créé depuis la scratch org

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.

Champ créé directement dans le répertoire en local

Il faudra modifier l’intérieur du fichier pour correspondre à votre besoin :

Code pour créer un champ de type checkbox (boolean) en local

sfdx force:source:push

Envoi du nouveau champ vers la Scratch Org

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

Aide de la commande de création de scratch org

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.