Préparation et déploiement d'une livraison pour Microsoft Dynamics CRM : voici le “Package Deployer"

L'une des phases importantes dans le cycle de vie d'un projet Microsoft Dynamics CRM est le packaging des personnalisations et développements réalisés, le tout en vue de les déployer sur les différentes organisations CRM du client. Pour cela Microsoft a fourni des outils qui vont aider les consultants et administrateurs CRM à construire  et déployer leurs packages d'une manière simple et efficace.

Deux outils sont ainsi proposés : le Template CRM Package pour Visual Studio qui permet au consultant technique CRM de créer un package de livraison, et le Package Deployer qui permet aux administrateurs CRM de déployer ces packages sur leurs différentes organisations Microsoft Dynamics CRM.


Pour comprendre l'utilité de ces outils, il est intéressant de se baser sur un cas pratique que j’ai pu rencontrer récemment. Il s’agit de la procédure de livraison et préparation d'une organisation Microsoft Dynamics CRM dans un projet CRM sur lequel j'ai travaillé et qui consiste en :
§ L'installation d'une solution CRM gérée contenant les personnalisations et développements.
§  La création des données de configurations qui sont nécessaires pour le fonctionnement de certains workflows et règles métier.
§  La reconfiguration des workflows et règles métier après création des données de configurations.
§  La Création des référentiels de données, à savoir liste des pays, communes, départements, code postaux, type client… etc.
§  La création des divisions et équipes (11 divisions et 110 équipes à créer).

Je devais appliquer cette procédure sur deux organisations CRM :
§  Développement.
§  Intégration.

Mon client devait l'appliquer également sur ces trois organisations :
§  Développement.
§  Recette.
§  Production.

Vous pouvez facilement imaginer le temps et l'effort qu'il me faudrait pour réaliser manuellement ces tâches sur chacune des organisations CRM, sans oublier les risques d’erreurs… en plus, il me faudrait rédiger une documentation de livraison détaillée pour mon client.

Grâce au Package CRM j'ai pu préparer mon package de livraison qui groupe mes personnalisations CRM, mes données référentielles et de configuration, puis, à l'aide de l'outil Package Deployer  j'ai pu le déployer rapidement sur les quatre environnements.


En effet, un Package CRM peut contenir un ou plusieurs des éléments suivants :



§  Une ou plusieurs solutions CRM.
§  Des fichiers plats ou des fichiers de données exportés à l'aide de l'Outil CRM Configuration Migration.
§  Du code personnalisé qui peut être exécuté avant ou après le déploiement du package CRM.
§  Du contenu HTML qui peut s’afficher au début et à la fin du processus de déploiement. Il peut être utile pour fournir une description des solutions et des fichiers qui sont déployés dans le package.

Je vous invite maintenant à découvrir les étapes à suivre pour créer et déployer un Package CRM.


Création du Package CRM


Pour créer un Package CRM, vous allez avoir besoin:
§  De Visual Studio version 2012 ou version plus récente.
§  Du Framework .Net 4.5.2
§  De télécharger le SDK de Microsoft Dynamics CRM version 2013 SP1 ou version plus récente, et d’installer le Template de projet "CRMSDKTemplates.vsix" disponible dans le dossier SDK\Templates.

1.  Démarrez Visual Studio, puis créez un nouveau projet de type CRM Package en sélectionnant CRM SDK Templates > CRM Package. Renommer le projet pour qu’il corresponde à un nom évoquant le projet du client.


2.  Un projet de type Bibliothèque de classes se crée avec la structure suivante


Les éléments principaux du projet sont:

  • PkgFolder: dossier principal dans lequel vous allez ajouter les solutions et les fichiers de données que vous souhaitez intégrer au package.
  • Content: contient les pages html qui vont être affichées au début et à la fin du processus de déploiement.
  • ImportConfig.xml: fichier de configuration qui permet entre autre de préciser les noms des solutions CRM et fichiers de données à importer.
  • PackageTemplate.cs: une classe, qui permet de rajouter le code personnalisé que vous souhaitez exécuter avant ou après le déploiement.

3.  Ensuite, copiez dans le dossier PkgFolder les solutions et fichiers des données à intégrer



Pour préparer les fichiers des données vous pouvez utiliser l'outil CRM Configuration Migration fournit par Microsoft.

4.  Important, Pour chaque fichier ajouté dans le répertoire PkgFolder, modifiez son paramètre Copier dans le répertoire de sortie à Toujours copier. Ceci permettra à Visual Studio de l'intégrer dans le Package CRM final


5.  Ensuite, configurez le fichier ImportConfig.xml pour préciser principalement les noms de solution CRM et les fichiers des données à importer.


Si vous souhaitez avoir plus d'informations sur les options de configuration disponibles, consultez https://msdn.microsoft.com/fr-fr/library/dn688182.aspx

6.  Pour enrichir votre package, adaptez le contenu des pages html qui vont être affichées au début de l'opération de déploiement ainsi qu'à la fin. Ces fichiers html se trouvent dans les répertoires Content > Welcome et Content > End.



7.  Le Package CRM permet d'intégrer du contenu html en plusieurs langues. Pour cela il suffit de créer une copie du dossier en-us et de renommer le dossier copié en fonction de la langue que vous souhaitez ajouter.  Par exemple pour la langue française, renommez le dossier en fr-FR. Lors du déploiement du package, le Package Deployer sélectionnera les pages html à afficher en fonction de la langue configurée dans les paramètres régionaux de l’ordinateur de l’utilisateur



8.  Changez le titre du répertoire principal du package, en renommant le dossier PkgFolder dans l’explorateur de solutions, puis en modifiant la valeur renvoyée par la propriété GetImportPackageDataFolderName dans le fichier PackageTemplate.cs



9.  Changez le nom et la description par défaut de votre Package CRM  en modifiant les valeurs envoyés par la fonction  GetNameOfImport et la propriété GetImportPackageDescriptionText


Enfin, enregistrez et compilez le projet.


Déploiement du Package CRM à l'aide du Package Deployer


Pour déployer  votre Package CRM, vous allez avoir besoin de l'outil Package Deployer que vous pouvez trouver dans le répertoire SDK\ Tools\PackageDeployer du SDK Microsoft Dynamics CRM.

1.  Copiez votre Package (dossier et DLL générés avec Visual Studio) dans le répertoire de l'outil Package Deployer SDK\ Tools\PackageDeployer.

2.  Ensuite, lancez l'outil en double cliquant sur PackageDeployer.exe, puis cliquez sur Continuer.


3. Dans l'écran de connexion, entrez les informations d'authentification de l'organisation CRM sur laquelle vous souhaitez déployer votre Package CRM


4.  Si vous avez plusieurs Package CRM, sélectionnez le package que vous souhaitez déployer, puis cliquez sur Suivant.


5.  Ensuite, La page HTML d’accueil configurée dans le projet de déploiement apparaît


Cliquez sur le bouton Suivant.

6.  L’écran suivant apparaît, rappelant le nom du package et l'identifiant de l'organisation CRM cible.


Cliquez sur le bouton Suivant.

7.  L'écran suivant s'affiche avec l'état d'avancement de la validation du contenu du  Package CRM. Une fois la validation terminée, Cliquez sur Suivant.


8.  L'écran suivant apparait indiquant l'avancement des étapes de déploiement du Package CRM


Une fois terminé, Cliquez sur Suivant.

9.  La page HTML de fin configurée dans le projet de déploiement s’affiche.


 Et voilà !
Pour résumer, la préparation et le déploiement d’une livraison à l’aide du Package Deployer passe par deux étapes :
§  Création du package CRM contenant les solutions CRM, les données à importer, les pages HTML de début et de fin, et le code personnalisé à l’aide du Template Package CRM de Visual Studio
§  Déploiement du package généré à l’aide de l’outil Package Deployer. Ce dernier va réaliser les opérations suivantes dans cet ordre :
o   Connexion à l’environnement Microsoft Dynamics CRM cible.
o   Analyse et affiche le(s) Package(s) CRM existant(s).
o   Affiche la page HTML d’accueil configurée dans le package sélectionné.
o   Exécute le code personnalisé configuré dans le package CRM
o   Installe les solutions CRM. A noter que pour chaque solution le package Deployer utilise une solution de dé-commissionnement, qui est automatiquement installée puis supprimée. Cette solution permet de supprimer les composants d’une solution gérée (je détaillerai dans mon prochain article le principe de dé-commissionnement avec un cas pratique).
o   Importe les données incluses dans le package CRM.
o   Affiche la page HTML de fin configurée dans le Package CRM sélectionné.

C’est  à vous ! 



1 commentaire:

  1. Bonjour,
    tout d'abord merci ^pour ce tuto super bien fait !
    Je rencontre un problème du à je cite " Echec de la demande d'importation pour le fichier File.csv" Auriez vous une idée de comment solutionner ce problème ? J'ai bien repéré File.csv dans la ImportConfig mais je ne sais pas de quoi il à besoin ?
    Merci !

    RépondreSupprimer