Nouveautés Microsoft Dynamics CRM 2016 : Gestion de Solution 2/2

Dans l'article précédent Nouveautés Microsoft Dynamics CRM 2016 : Gestion de Solution 1/2, nous avons commencé la présentation des nouveautés Microsoft Dynamics CRM 2016 concernant la gestion de solution. Nous avons notamment détaillé la façon avec laquelle les solutions peuvent être créées et la capacité d'embarquer des sous-composants d'une entité dans une solution et non l'entité au complet. Dans cette seconde partie, je vous propose de découvrir les autres nouveautés apportées aux solutions, et comment grâce à ces dernières nous pourrons gérer de manière efficace les différents scénarii de livraison de solution.

Pour vous présenter ces nouveautés, rien de mieux qu'un exemple concret qui couvre les différents scénarii possibles de livraisons de solution dans la vie d'un projet CRM.


Pour réaliser cet exemple, nous allons avoir besoin de deux environnements Microsoft Dynamics CRM 2016 :
§  Environnement de développement : qui va servir pour préparer les solutions
§  Environnement de recette : qui va servir à organiser la destination pour nos solutions.


Tout d'abord, nous allons créer une nouvelle solution avec le nom "Solution_CRM" sur l'environnement de développement. Cette solution contiendra les deux entités standard Compte et Contact :



Etape 1 : Livraison de la solution initiale

La première étape consiste tout simplement à livrer la solution "Solution_CRM" vers l'environnement de recette du client. Pour cela, rien de compliqué, il suffit de suivre les étapes classiques pour exporter et importer une solution. Dans cet exemple nous livrons les solutions en mode géré.


Maintenant, l'environnement de recette est installé, le client peut réaliser ses tests et nous remonter ses remarques et commentaires

Dans notre exemple, le client a effectivement testé et il a malheureusement détecté un bug. Il voudrait que le champ "accountnumber" de l'entité Compte soit nommé "Identifiant du compte" au lieu de "Numéro de compte" et que le nombre de caractères maximum du même champ soit à 10 et non pas à 20.

Je me suis trompé dans ma première livraison, je dois donc corriger et livrer rapidement le correctif au client.

Comment dois-je procéder ?

Etape 2 : Livraison des corrections

Pour corriger ce bug, nous allons créer une solution Patch qui n'inclura que le composant qui pose problème. Ceci est aujourd'hui possible grâce à la nouvelle version de Microsoft Dynamics CRM qui nous donne la possibilité de choisir les sous-composants de l'entité à intégrer dans une solution (pour plus de détails, voir l’article Nouveautés Microsoft Dynamics CRM 2016 : Gestion de Solution 1/2). Pour ce faire, il suffit de sélectionner la solution "Solution_CRM", puis de cliquer sur le nouveau bouton "Cloner correctif". La fenêtre ci-dessous apparait :


 Le Framework de solution CRM va donc créer une solution de correctif avec le même nom et éditeur de la solution existante, et il va incrémenter le numéro de la version de 1.1.0.0 à 1.1.1.0.


La solution créée ne contient aucun élément, nous allons donc y inclure le champ "accountnumber". Pour cela, je sélectionne l'entité Compte, puis dans l'onglet Champs, je choisie l'attribut "accountnumber".


Comme vous pouvez le constater ci-dessous notre solution ne contient plus que le champ "accountnumber".


Maintenant, nous allons donc pouvoir ouvrir les propriétés de ce champ, et appliquer les modifications demandées par notre client.


Une fois les modifications apportées, nous allons exporter notre solution Patch afin de l'importer ensuite sur l’environnement de recette du client en suivant les étapes classiques, sans oublier de publier les modifications.


Après import, la solution Patch reste lisible dans la liste des solutions en tant que Patch de la solution précédente.
L’installation de cette solution a permis de changer les propriétés du champ "Numéro de compte" uniquement.


Nous avons donc pu prendre en compte rapidement la correction de ce bug et déployer la correction sans impacter les autres composants de la même entité.

Après quelques jours, notre client a fait une nouvelle demande d'évolution. Il souhaite ajouter une nouvelle entité pour gérer son catalogue de Formations.

Comment dois-je procéder ?

Etape 3 : Livraison des évolutions

Pour intégrer des nouvelles fonctionnalités à la solution existante, nous allons utiliser la nouvelle fonction de Microsoft Dynamics CRM 2016 qui permet de créer une version mineur/majeur (en fonction des évolutions à apporter) de la solution existante. Pour cela, nous allons simplement sélectionner la solution existante 1.1.0.0 et cliquer sur le nouveau bouton "Cloner la solution".


Le Framework de solution va alors cloner la solution existante en gardant le même nom, le même éditeur et il va incrémenter le numéro de version de 1.1.0.0 à 1.2.0.0.


À la fin de l'opération, nous remarquons que le Framework de solution :
1.   N'a pas créé une nouvelle solution mais il a mis à niveau la solution existante
2.   A supprimé la solution Patch

La solution mise à niveau 1.2.0.0 se compose des deux entités Contact et Compte et des correctifs qui ont été apportés dans la solution Patch supprimée.

Nous pouvons désormais ajouter la nouvelle entité "Formation".


Ensuite, nous allons publier les modifications et exporter notre solution.

De l'autre côté, nous allons suivre la procédure standard pour importer cette solution sur l'environnement de recette. Lors de l'importation, le Framework de solution détecte qu’il s’agit de la mise à jour d’une solution déjà installée et il indique qu’il va donc réaliser une phase de mise à niveau.


À la fin de l'import, nous allons avoir les lignes suivantes dans la vue des solutions :


Le Framework de solution a conservé la solution 1.1.0.0, la solution Patch 1.1.1.0 et il a ajouté la solution de mise à niveau 1.2.0.0.

Dans les versions antérieures à Microsoft Dynamics CRM 2016, l'importation d'une solution avec un numéro de version supérieur remplace la solution existante, ce qui ne permet pas de revenir en arrière dans le cas où la version N+1 installée ne fonctionne pas correctement. Nous devions désinstaller l'intégralité de la solution ou passer par une procédure de dé commissionnement complexe.

Aujourd'hui avec ces nouvelles améliorations, nous pourrons revenir en arrière facilement et sans risque en désinstallant le Patch ou la version N+1.

Maintenant que l'évolution est déployée sur l'environnement de recette, le client peut réaliser sa recette.

Une fois que le client nous aura validé le bon fonctionnement de la livraison, nous pourrons nettoyer l'environnement de recette en appliquant la mise à niveau de la solution. Pour cela, il faut toujours sélectionner la solution initiale 1.1.0.0, puis utiliser le nouveau bouton "Appliquer la mise à niveau de la solution".


Suite à cette opération, le Framework de solution va conserver la dernière solution installée (la version 1.2.0.0), et il va supprimer toutes les autres solutions existantes ainsi que leurs dépendances vers les composants CRM de la base de données CRM.



Et voilà, l'environnement de recette est dans son état final avec une solution qui contient l'ensemble des composants livrés depuis le début du projet et de leurs correctifs.

Pour résumer, grâce aux nouveautés Microsoft Dynamics CRM 2016 concernant la gestion de solution présentées dans cet article, nous avons la possibilité de :
§  Revenir en arrière dans le cas d’un problème suite à une livraison ce qui n'était pas le cas jusqu'à présent.
§  Livrer des correctifs ayant accès sur des sous composants de l'entité, plutôt que de livrer l'entité au complet.


J’espère que cet article peut vous être utile.
Merci beaucoup d'avoir visité mon blog et à très bientôt :)

Aucun commentaire:

Enregistrer un commentaire