package

Distribuer du code avec SFDX

Aujourd’hui, vous venez de développer un petit module et vous souhaitez le partager à un autre développeur pour qu’il puisse l’installer dans son organisation personnelle ou chez son client.

Ou vous êtes responsable du pôle développement et vous souhaitez que vos développeurs revoient l’architecture du développement réaliser sur Salesforce.

Une solution s’offre à vous les « Unlocked Package », faire un package, hébergé sur les serveurs Salesforce et dont l’installation se fera par ligne de commande ou via une URL !

Je vais partir d’un répertoire de code assez simple contenant seulement une présentation de page de « compte » et un champ « SIRET », beaucoup de clients en France ont besoin de cette information et si on l’installer a chaque fois avec une seule ligne de commande.

Pour la création du répertoire et du champ, je vous laisse consulter cet article : SFDX – Créer une Scratch Org – Pull – Push

C’est assez simple de créer un package, il faut se placer à l’intérieur de votre répertoire SFDX avec votre terminal/cmd, puis exécuter les commandes suivantes :

1/ Demander à Salesforce de créer un package pour notre répertoire :

sfdx force:package:create -n LeNomDeVotrePackage -d "votre description" -t Unlocked -r force-app

Un identifiant se génère.

2/ Il faut créer une version de ce package

sfdx force:package:version:create -p IdentifiantGénéréPrécedemment -f config/project-scratch-def.json --json

Il est possible de rajouter une clé pour sécuriser le package avec un code :

-k VotreMotDePasse

3/ Installer le package (pour le moment seulement en Sandbox et developer org)

Avec la ligne de commande :

sfdx force:package:version:list --packages IdentifiantDuPackageVersion

Avec l’URL :

https://my-domain.lightning.force.com/packagingSetupUI/ipLanding.app?apvId=IdentifiantDuPackageVersion

Il faut remplacer le début de l’url par la votre exemple :

https://my-domain.lightning.force.com/LeResteDelURL

par

https://thomasparaiso.lightning.force.com/LeResteDelURL

À ce moment-là votre package ne peut être installé qu’en sandbox/organisation de développement.

4/ Promouvez votre package pour des environnements de production

sfdx force:package:version:promote -p IdentifiantDuPackageVersion

Maintenant que votre package est “Released”, vous pouvez l’installer ou bon vous semble !

Conclusion :

Tout ce que vous aviez dans votre répertoire (dans mon cas le champ SIRET__c ) est maintenant disponible dans l’organisation de destination.

Vous aurez, plus ou moins des actions manuelles à réaliser, dans mon cas, je dois activer la visibilité et les droits sur mon champ pour les différents profils. Mais j’aurais pu mettre en place un ensemble de permission (permission set) pour éviter cette configuration. Ça sera l’occasion de faire un nouvel article.

Le mot de la fin :

N’hésitez pas à faire de nombreux packages soit pour partager votre code, ou alors pour avoir une architecture plus légère.

C’est plus simple de maintenir de petits projets qu’un énorme projet avec beaucoup de configuration/code.