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 !
Bonjour,
RépondreSupprimertout 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 !