Distribuer vos mises à niveau
Objectifs de formation
Une fois cette unité terminée, vous pourrez :
- Répertorier les différents moyens de transmettre des mises à niveau à vos clients
- Décrire les outils que vous pouvez utiliser pour faciliter les mises à niveau pour vos clients
Généralisation de l’utilisation de la version la plus récente
Dans l’unité précédente, vous avez découvert les numéros de version du package, qui identifient les versions uniques de vos packages gérés.
Comme nous l’avons indiqué, devoir assurer la maintenance de différentes versions de votre produit est tout sauf idéal. Essayez de faire en sorte que tous vos clients utilisent la même version (la plus récente) de votre produit. Ainsi, tout le monde dispose de la même expérience, des dernières corrections de bugs et de toutes les fonctionnalités les plus intéressantes.
Découvrons comment il est possible d’y parvenir.
Envoi automatique des mises à niveau à vos clients
Si vous souhaitez vraiment que vos clients utilisent la version la plus récente de votre produit, il existe un moyen simple de faire en sorte que cela soit le cas : utilisez les mises à niveau par envoi automatique. Avec une mise à niveau par envoi automatique, vous envoyez la version la plus récente de votre solution à vos clients. Ils n’ont rien à faire pour effectuer la mise à niveau : ils se contentent d’utiliser la nouvelle version une fois qu’ils disposent de celle-ci.
Vous pouvez utiliser les mises à niveau par envoi automatique pour les mises à jour majeures ou mineures et les nouvelles versions de correctif. Lorsqu’une mise à niveau par envoi automatique est terminée, les clients voient un nouveau numéro de version sur la page Détails du package de leur produit. Bien entendu, ils disposent également de toutes vos nouvelles fonctionnalités intéressantes.
Communication, communication, communication
Nous espérons que nous vous avons convaincu d’avoir recours aux mises à niveau par envoi automatique. Vous pouvez désormais informer vos clients que vous les utilisez : ils apprécieront sans aucun doute de savoir qu’il est prévu qu’une mise à jour par envoi automatique leur soit transmise !
Fonctionnement d’une mise à niveau par envoi automatique
Voici comment fonctionne une mise à niveau par envoi automatique :
- Vous sélectionnez une ou plusieurs organisations clientes à mettre à niveau.
- Vous choisissez la version de votre application à installer sur ces organisations.
- Vous planifiez la mise à niveau à une date et une heure données.
- Vous suivez la progression de la mise à niveau. Vous pouvez vérifier si elle s’est déroulée correctement, ou, si celle-ci est en attente, l’annuler afin de la replanifier.
Voilà, en bref, la manière dont fonctionnent les mises à niveau. Vous décidez exactement de la manière dont la mise à niveau est effectuée : vous déterminez quelles organisations sont mises à jour en premier, ainsi que ce qui se produit dans chaque organisation.
Un grand pouvoir implique de grandes responsabilités
Les mises à niveau par envoi automatique vous permettent d’être aux commandes. Vous pouvez distribuer tout type de version, d’un simple correctif à une refonte majeure de votre application. Vous pouvez transmettre la mise à niveau à l’ensemble de vos clients ou bien à un seul d’entre eux.
Si elle est effectuée correctement, une mise à niveau par envoi automatique peut se faire en toute fluidité : tout le monde obtient alors la nouvelle version et l’utilise. Cependant, si elle n’est pas bien menée… inutile de vous faire un dessin : tout utilisateur d’un ordinateur sait à quoi ressemble une mise à niveau bâclée.
Faites preuve de bon sens. Si vous ajoutez de nombreuses fonctionnalités ou composants, tenez compte de l’impact que cela aura :
- Les composants fonctionneront-ils avec les installations existantes ?
- Votre mise à niveau interfère-t-elle avec des personnalisations courantes ?
- Votre mise à niveau crée-t-elle des perturbations au niveau des données client ?
L’ajout de nouvelles fonctionnalités est facile à gérer : aucun de vos clients ne les utilise tant que vous ne leur avez pas fait parvenir votre mise à niveau. Il est plus délicat d’apporter des modifications à des fonctionnalités existantes. Essayez de préserver la manière dont elles fonctionnent afin que vos clients restent productifs.
Les partenaires Salesforce ont besoin d’une autorisation spéciale pour pouvoir réaliser des mises à niveau par envoi automatique. Pour demander un accès, consignez une requête de support dans la Salesforce Partner Community (connexion requise).
Automatisation des détails
Réaliser des mises à niveau s’avère plus délicat que de procéder à de nouvelles installations, car elles modifient un système existant. De plus, qui sait ce qu’il peut bien se passer dans une organisation cliente ?
Parfois, vous devrez effectuer des tâches de post-installation, c’est-à-dire que vous aurez du travail à réaliser après l’installation. Par exemple, vous pouvez avoir à modifier des données client pour les adapter à une formule mise à jour ou pour corriger des incohérences. Avec les métadonnées Apex, vous pouvez même mettre à jour une présentation de page lorsque vous ajoutez un champ personnalisé à votre package.
Salesforce vous permet d’écrire une classe Apex pour réaliser les tâches de post-installation. Cette classe est exécutée après l’installation de votre mise à niveau dans une organisation.
À quoi ressemble une telle classe ? En voici un exemple simple :
global class PostInstallClass implements InstallHandler { global void onInstall(InstallContext context) { if(context.previousVersion() == null) { // This means the package is being installed for the first time // Perform required activities for the first time install Account a = new Account(name='NewAccount'); insert(a); } else if(context.previousVersion().compareTo(new Version(1,0)) == 0) { // This means the previous version is 1.0 } if(context.isUpgrade()) { // This means the package is getting upgraded // Perform required activities for package upgrades } if(context.isPush()) { //This means the package is getting pushed // Perform required activities for push upgrades } } }
Chaque nouvelle classe Apex a besoin d’une classe de test, alors en voici une pour notre exemple :
@isTest static void testInstallScript() { PostInstallClass postinstall = new PostInstallClass(); Test.testInstall(postinstall, null); Test.testInstall(postinstall, new Version(1,0), true); List<Account> a = [Select id, name from Account where name ='NewAccount']; System.assertEquals(a.size(), 1, 'Account not found'); }
Utilisez la méthode testInstall
de la classe Test
pour tester votre classe PostInstall
. Au fait, que contient cette méthode ? Eh bien, c’est à vous de décider !
Automatisation réfléchie
L’automatisation est très utile, à condition qu’elle fonctionne bien. Réfléchissez à la meilleure façon de l’utiliser avec des fonctionnalités existantes et nouvelles.
Pour apporter des améliorations à des fonctionnalités existantes, utilisez une classe de post-installation afin d’attribuer automatiquement de nouvelles autorisations relatives aux composants de fonctionnalité aux utilisateurs existants. De cette façon, tout le monde pourra continuer à utiliser le package sans interruption.
N’utilisez pas de script Apex de post-installation dans le but d’attribuer automatiquement des autorisations de composants relatives aux nouvelles fonctionnalités. Attirez plutôt l’attention des administrateurs de vos clients sur ces fonctionnalités et laissez-les régler les détails.
Planification de votre mise à niveau par envoi automatique
Maintenant que vous avez défini votre mise à niveau, il est temps de la planifier. Qui obtiendra la mise à niveau, et à quel moment ?
Planification des mises à niveau avec l’API SOAP
L’API SOAP vous permet de planifier et de contrôler les mises à niveau par programmation et de suivre leur progression. Grâce à l’API SOAP, vous pouvez :
- trouver les clients qui utilisent votre package à l’aide de requêtes SOQL ;
- planifier des mises à niveau par envoi automatique pour ces clients ;
- surveiller le statut d’une mise à niveau et vérifier l’absence d’erreurs.
L’API vous offre une grande flexibilité dans le déploiement des mises à niveau. Par exemple, vous pouvez créer un formulaire Web qui permet aux clients de procéder à une mise à niveau vers une nouvelle version. En cliquant sur un bouton de ce formulaire, ces clients peuvent planifier une mise à niveau par envoi automatique.
Nous ne décrivons pas comment utiliser l’API SOAP ici, car certains aspects de son fonctionnement sont un peu plus complexes que ce que nous abordons ici. Le Guide du développeur sur les packages gérés de deuxième génération vous explique comment programmer vos propres mises à niveau par envoi automatique.
Le changement est l’unique constante
Lorsque vous développez un logiciel, différents aspects changent au fil du temps. Des bugs sont corrigés, des fonctionnalités sont ajoutées et les algorithmes et les structures évoluent. Vous avez déjà géré de tels changements au sein de votre propre équipe de développement. Maintenant, vous savez comment faire en sorte qu’ils soient appliqués aux solutions qu’utilisent vos clients.
Utilisez ces outils pour fournir à vos clients des mises à jour rapides et fluides. En tant que clients Salesforce, ils s’attendent à bénéficier de tous les avantages du logiciel en tant que service. En leur offrant ce que le SaaS promet d’apporter, vous parviendrez à les satisfaire.
Ressources
- Apex Developer Guide: Classes, objets et interfaces
- Apex Developer Guide: Métadonnées
- Apex Developer Guide: En quoi consistent les tests unitaires Apex ?
- Apex Developer Guide: Interface InstallHandler
- Packages gérés de deuxième génération : Publication d’une mise à niveau de package pour les packages gérés de deuxième génération