L’outil d’export et d’import de personnalisations de MS CRM 3.0 est efficace mais pas exempt de défauts. Pour la énième fois, nous avons été confrontés au problème de personnalisation qui refuse de s’importer pour une entité donnée.
Le CRM d’un de nos clients contient quelques centaines de milliers d’enregistrements au niveau des entités « Comptes » et « Contacts ». Nous avons une version de la base CRM dans notre environnement de production qui est un snapshot de la version de production effectuée en début de vie du projet. Le volume de données chez nous est très faible par rapport à celui de la plateforme en production.
Nous sommes amenés à effectuer des modifications sur l’entité Adresse (customeraddress) - cette entité est liée aux entités comptes et contacts - en y ajoutant de nouveaux attributs. Il existe plusieurs centaines de milliers d’enregistrements au niveau des Comptes et Contacts, en revanche aucune adresse n’est encore enregistrée.
L’importation de fichier de personnalisation sur le serveur de production échoue.
Grace à l’analyse des traces SQL (SQL Server Profiler) et CRM (TraceEnabled=1 dans la base de registre) enregistrées lors de l’importation, nous nous sommes aperçus que le moteur d’importation ne se contentait pas de modifier la structure de la table « customeraddress » sur laquelle porte la personnalisation, mais qu’il exécute des requêtes avec jointures sur la table « Comptes ». Les requêtes tombaient en timeout, faisant échouer la tâche d’importation.
L’article de la KB Microsoft a répondu à ce problème et la méthode 1 décrite dans celui-ci à été mise en place avec succès, résolvant le problème d’échec de l’importation :
1.Recherchez la sous-clé de Registre suivante :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM
2.Créer une Valeur DWORD nommée OLEDBTimeout
3.Lui donner la valeur de timeout souhaitée (valeur décimale exprimée en secondes) : 86400
4.Créer une Valeur DWORD nommée ExtendedTimeout
5.Lui donner la valeur de timeout souhaitée (valeur décimale exprimée en millisecondes) : 1000000
Une fois l’importation terminée il est recommandé de supprimer ces valeurs pour revenir dans l’état initial.
Engus
Commentaires