Le problème survient (sans raison apparente) lorsqu' on essaie de se connecter à l’application Dynamics CRM 4.0 via Internet Explorer. L’accès à CRM est bloqué avec le message suivant :
Le code d’erreur que l’on peut voir dans l’url et dans le gestionnaire d’évènement référence une erreur connue de CRM (cf. liste des codes d’erreur du SDK) indiquant un problème de génération de clé invalide (code error 8004A106).
J’ai trouvé une proposition de solution (sans explication du problème) sur Internet qui consiste à redémarrer le service Service de traitement asynchrone Microsoft CRM (http://peitor.blogspot.com/2008/12/microsoft-crm-4-crmexception-expired.html). Mais que faire si ce service est correctement démarré ?
En cherchant dans le Gestionnaire de déploiement de CRM, il s’avère que mon serveur CRM (ayant tous les rôles de serveur cumulés) était dans un état “désactivé”. En le réactivant, l’accès à CRM est rétabli !

Vous êtes plusieurs à me rapporter des erreurs qui vous bloquent dans le processus d’installation de CRM 4.0 sur Windows Server 2008 et SQL Server 2008. Et pour cause car il y a en effet des problèmes du fait que CRM 4.0 a été conçu pour être compatible notamment avec les anciennes versions des deux produits c’est-à-dire Windows Server 2003 et SQL Server 2005.
Il y a évidemment plein d’infos à droite à gauche sur Internet sur le sujet. En voici une petite compilation :
-
- Pour résoudre le message d’erreur « Le service msftesql est introuvable » dû à SQL Server 2008, je vous conseille cet article : http://support.microsoft.com/kb/952601/. La solution est en fait toute simple.
Il suffit de télécharger la dernière version des fichiers d’installation lorsque le programme d’installation vous le suggère (au tout début du processus d’install) :
Important : Notez que cette étape consiste à mettre à jour uniquement les fichiers d’installation de CRM et ne remplace donc pas l’installation des rollup de CRM qui doit être réalisée après l’installation du produit.
Le dernier rollup actuel pour CRM 4.0 est le N°4 téléchargeable ici :
http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=0ddf8e83-5d9c-4fe7-9ae6-f2713a024071 Autre remarque : Si vous avez un souci de connexion à Internet (par exemple sur une machine virtuelle) vous pouvez télécharger séparément les fichiers d’installation depuis l’url correspondante indiquée ici :
http://support.microsoft.com/kb/948917/
Bonne installation !
Le problème rencontré est le suivant :
Lorsqu’on exécute un site web (une page aspx quelconque) à partir de Visual Studio, le serveur de développement ASP.NET s’exécute mais Internet Explorer renvoie le message suivant :
Pour résoudre le problème, suivez la procédure suivante :
- Exécutez le Bloc-notes de Windows en tant qu’administrateur.
- Ouvrez le fichier C:\Windows\System32\drivers\etc\hosts
- Changez la ligne “::1 localhost” en “:::1 localhost” c’est-à-dire en rajoutant encore deux points (:) devant le chiffre 1.
- Sauvegardez le fichier en cliquant Fichier > Enregistrer sous puis en sélectionnant le type Tous les fichiers :
- Répondez Oui à la question qui vous est posé pour écraser le fichier existant avec les changements.
Si vous avez un problème plus spécifique concernant le fonctionnement du serveur de développement ASP.NET, vous trouverez ici quelques pistes de réflexion/solution : http://msdn.microsoft.com/fr-fr/library/w566a94d.aspx
Parallèlement à la consultation de rapports disponible dans l'interface de Dynamics CRM, il est possible d'envoyer automatiquement un rapport à un utilisateur en pièce attachée ou directement dans le contenu d'un message électronique.
J'ai déjà rencontré plusieurs fois ce besoin notamment pour des responsables faisant partie d'un pôle de direction d'entreprise, qui apprécient de trouver chaque semaine leurs rapports de synthèse dans leur boîte de messagerie, plutôt que de devoir faire la démarche par eux-même d'aller consulter les dits rapports dans CRM. Il y a comme un effet reminder appréciable.
Du point de vue technique, le procédé n'est pas particulièrement compliqué mais il est vrai qu'il est difficile de trouver une procédure claire et précise sur Internet sur le sujet. D'autant que la solution n'est techniquement pas faisable à partir de CRM seul et repose au contraire entièrement sur Report Server qui gère les rapports de ce dernier.
Le principe consiste à configurer un abonnement (subscription en anglais) sur Report Server pour l'utilisateur sur chaque rapport concerné.
Voici quelques éléments qui j'espère vous aideront dans la mise en oeuvre d'un abonnement avec SRS sur un rapport CRM :
Première étape : configuration de Report Server pour l' abonnement par email
- Sur le serveur installé avec SQL Reporting Services, lancez Start > All programs > Microsoft SQL Server 2005 > Configuration Tools > Reporting Services Configuration
- Sélectionnez Email Settings dans la barre de navigation à gauche.
- Indiquez l' adresse de l' expéditeur à utiliser pour les messages. Il faut que cet utilisateur ait les permissions évidemment d' envoyer des emails via le serveur SMTP spécifié dans le point suivant.
- Indiquez le nom du serveur SMTP (ce peut être une adresse IP, un nom UNC...etc. Par exemple, vous pouvez indiquer le nom du serveur Exchange si vous utilisez Exchange Server pour l'envoi de message)
- Appliquez les paramètres en cliquant le bouton Apply puis quitter le gestionnaire.
Seconde étape : configuration d'une source de données personnalisée pour le rapport concerné
- Lancez le gestionnaire de rapport de SRS dans Internet Explorer. Il doit s' agir d' une URL du type http://<NomDuServeurSRS>/Reports
- Cliquez Afficher les détails tout à droite dans la barre d' outils du gestionnaire, pour faire apparaître le détail des répertoires disponibles.
- Cliquez sur le répertoire du même nom que l' organisation contenant les rapports CRM, par exemple AdventureWorksCycle_MSCRM dans l' exemple ci-dessous :
- Cliquez ensuite sur le dossier 4.0 dans lequel doit se trouver le rapport sur lequel porte l' abonnement.
- Par défaut, les rapports de Dynamics CRM sont configurés sur une source de données qui s' appelle MSCRM_DataSource que vous trouverez tout en bas dans la liste des rapports.
Il se peut que vous rencontriez des problèmes en configurant un abonnement sur la base de cette source de données définie par défaut, y compris si celle-ci s' appuie sur le connecteur SRS installé pour CRM. Si vous tentez de configurer un abonnement sur le rapport, vous risquez de vous trouver face à ce message :
Pour que cela fonctionne sans encombre, une solution consiste à définir une source de données personnalisée dont vous maîtriserez parfaitement les paramètres de configuration.
- Sélectionnez Nouvelle source de données dans la barre de menu du gestionnaire pour créer une source de données personnalisée.
- Nommez la source par exemple Custom_DataSource.
- Donnez lui une description précise par exemple : Custom DataSource used for report subscriptions.
- Cochez la case Activer cette source de données.
- Sélectionnez Microsoft SQL Server dans la liste Type de connexion.
- Entrez la chaîne de connexion à la base de données CRM dans la zone de texte Chaîne de connexion, par exemple :
data source="<NomDuServeurSQLContenantLaBaseCRM>";initial catalog="<NomDeLOrganisation_MSCRM>"
Cela donne par exemple :
- Cochez Informations d'identification stockées en sécurité dans le serveur de rapports.
- Entrez un nom d'utilisateur et un mot de passe ayant accès à CRM.
- Cochez Utiliser comme informations d'identification Windows lors de la connexion à la source de données.
Cela donne par exemple :
- Validez en cliquant le bouton Appliquer.
- Revenez sur la liste des rapports Dynamics CRM 4 et sélectionnez le rapport sur lequel porte l' abonnement à réaliser.
- Sélectionnez l'onglet Propriétés.
- Sélectionnez Sources de données dans la zone de navigation à gauche.
Vous constatez que la source de données du rapport est par défaut MSCRM_DataSource qui se trouve dans le dossier 4.0. Remplacez cette source de données par celle personnalisée que vous venez de configurer.
- Cliquez Parcourir.
- Sélectionnez la source de données personnalisée Custom_DataSource en parcourant la hiérarchie de répertoires de l'organisation.
- Validez par OK.
- De retour dans l' écran de propriétés du rapport, cliquez Appliquer.
Troisième étape : configuration de l' abonnement au rapport Dynamics CRM
- Toujours sur le rapport concerné, basculez sur l' onglet Abonnements.
- Cliquez Nouvel abonnement dans la barre d' outils.
- Sélectionnez Messagerie comme option de remise du rapport.
- Entrez l' adresse email du ou des destinataires du rapport dans la zone A:
- Entrez éventuellement des destinataires en copie et copie cachée si besoin.
- Cochez Inclure un lien ou Inclure un rapport selon si l' utilisateur souhaite recevoir le rapport en pièce jointe ou directement dans le corps du message.
- Sélectionnez le format du rapport de votre choix.
- Planifiez l 'abonnement pour une réception hebdomadaire par exemple en cliquant Sélectionnez une planification.
- Configurez manuellement les paramètres de rapport dont vous auriez besoin.
Cela donne par exemple :
- Terminez en cliquant sur OK.
- Vous pouvez consulter votre abonnement dans la liste des abonnements et voir notamment la date de sa dernière exécution et l' état correspondant.
Quelques liens utiles :
Le cinquième atelier du coach VB.NET 2008 est en ligne à cette adresse : http://msdn.microsoft.com/fr-fr/vbasic/msdn.coachvb.atelier5.aspx
Dans la lignée de l'atelier 4 qui traitait de la manipulation de données de fichier, ce cinquième atelier pose les bases de l'accès aux données stockées cette fois en base de données.
Donc, si vous ne savez pas du tout comment vous y prendre pour accéder à des données en base à partir d'une application écrite en VB.NET, cet atelier est pour vous
. Il comprend des exemples d'accès à une base SQL Server Express 2005 et une base Microsoft Office Access 2007.
A vos claviers !
Symptôme
Si une action A dans CRM est déclenchée dans le cadre d'une autre action B, un plugin enregistré pour l'action A ne se déclenche pas.
Par exemple, si vous exécutez un plugin sur l'action de création d'une commande (donc enregistré pour le message Create de l'entité salesorder), cela fonctionne à la création directe d'une commande. En revanche le plugin ne s'exécute pas lors de la création d'une commande déclenchée automatiquement suite à la conversion d'un devis.
Explication
Le souci vient du fait que l'action A est le pipeline d'exécution principal alors que l'action B donne lieu à un pipeline d'exécution enfant du premier. Voici l'ordre d'exécution des deux pipelines :
Solution
Pour que le pipeline B déclenche l'exécution du plugin, il faut enregistrer le plugin en tant que Child Pipeline au moment de l'enregistrement.
Par exemple, en utilisant CRM Plugin Registration Tool (v2.1), cela revient à sélectionner Child Pipeline pour la propriété Triggering Pipeline à l'enregistrement du step comme suit :
Autre problème
Il faut savoir que lorsque vous exécutez un plugin dans un pipeline enfant, vous êtes dans un contexte un peu particulier. Si vous reprenez la figure 2 ci-dessus qui montre l'ordre d'exécution des deux pipelines imbriqués, vous constatez que le pipeline enfant s'exécute complètement alors que le pipeline parent n'est toujours pas terminé.
La transaction ouverte par le pipeline parent n'étant pas terminée au moment de l'exécution du pipeline enfant, il n'est pas possible d'invoquer le service web CrmService depuis le pipeline enfant. En effet, la transaction produit des locks sur la base qui empêche tout autre accès, même en lecture seule...
Microsoft recommande donc de ne pas se connecter à CRM dans un pipeline enfant pour lire ou mettre à jour des entités. Si vous avez besoin de le faire, la bonne marche à suivre et d'enregistrer votre plugin en mode asynchrone de façon à ce qu'il s'exécute bien après l'exécution du pipeline parent.
Cela revient à sélectionner Asynchronous pour la propriété Execution Mode au moment de l'enregistrement du step :

Pensez à vérifier que le service Microsoft CRM Asynchronous Processing Service est bien démarré sur le serveur CRM qui détient le rôle associé.
Pour rappel, en mode asynchrone, le plugin s'exécute au moment de l'exécution du pipeline enfant mais la subtilité est que le message est aussitôt envoyé dans une file d'attente sous la charge du service Microsoft CRM Asynchronous Processing Service qui l'exécutera en asynchrone, à un moment où les locks sur la base seront levés :
Dans le cas du mode asynchrone, si vous êtes en phase de développement et que vous avez besoin de déboguer le plugin, l'astuce consiste à attacher le process non plus à une instance de IE exécutant CRM, mais directement à l'instance du service Microsoft CRM Asynchronous Processing Service.
Quelques liens intéressants sur le sujet :
- Les vues Membres d'une liste marketing sont au nombre de trois : Tous les membres, Membres actifs, Membres inactifs.
Il n'est pas possible de modifier la présentation des colonnes dans ces trois vues via les outils de personnalisation de l' interface standard du fait que les listes marketing peuvent porter sur trois entités différentes : les prospects (lead), les contacts (contact) et les comptes (account).
Pour contourner le problème, il est possible de suivre la procédure suivante :
- Exporter l'entité concernée (Compte/Contact ou Prospect) au format XML via l' interface en cliquant le menu Paramètres > Personnalisation > Exporter les personnalisations
- Editez le fichier XML dans Notepad ou un autre éditeur (par exemple Visual Studio)
- Recherchez l'intitulé de la vue par exemple la chaîne "Membres actifs" pour la vue Membres actifs. La balise <savequery> qui l'encapsule est la balise qui regroupe l' intégralité de la définition de la vue.
- La présentation de la vue est définie dans la balise enfant <layoutxml> :
- Alors que la balise <fetchxml> définit les critères de filtre :
- C'est un peu moins convivial que dans l'interface, mais vous pouvez donc directement retoucher dans l'XML la largeur des colonnes des vues, les changer etc ...
- Ensuite, suivez le processus inverse pour réimporter les changements dans CRM. Cliquez Paramètres > Personnalisation > Importer les personnalisations et uploader le fichier XML modifié.
- N'oubliez pas de publier l'entité correspondante (Compte/Contact ou Prospect) depuis Paramètres > Personnalisation > Personnaliser les entités.
Et voilà, le tour est joué !
Microsoft France a créé trois tests blancs (proposant chacun 80 questions) pour vous aider à préparer les examens suivants :
- Customization and configuration in Microsoft Dynamics™ Dynamics CRM 4.0 (MB2-631)
- Applications in Microsoft Dynamics™ Dynamics CRM 4.0 (MB2-632)
- Installation and deployment in Microsoft Dynamics™ CRM 4.0 (MB2-633)
Ce sont des tests destinés à vous aider à vous évaluer avant de vous lancer dans le passage de l'examen. Ils ne fournissent donc pas les réponses mais vous donnent un résultat détaillant le pourcentage de bonnes réponses dans chaque catégorie de question, comme le fait l'examen réel.
Vous trouverez les trois tests sur le site d'Avolys à l'adresse suivante : http://www.test-tami.com/avolys
Pour vous connectez, suivez la procédure en pièce jointe.
Bonne prép !
Si vous souhaitez vous certifier sur Microsoft Dynamics CRM 4.0 et passer l'un des tests suivants :
- Customization and configuration in Microsoft Dynamics™ Dynamics CRM 4.0 (MB2-631)
- Applications in Microsoft Dynamics™ Dynamics CRM 4.0 (MB2-632)
- Installation and deployment in Microsoft Dynamics™ CRM 4.0 (MB2-633)
sachez que les tests sont plutôt chauds (en tous cas plus que pour la version 3).
Pour une préparation optimale, je vous conseille la journée de prépa organisée en collaboration avec Microsoft par ib formation à la Défense à Paris le 12 juin prochain. C'est moi qui anime
et je compte bien vous aider de mon mieux pour que vous ayez un maximum de chance de réussite au passage de la certif.
Tous les détails ici.
Et penser à l'offre 2ème Chance qui permet de repasser l'examen une seconde fois gratuitement en cas d'échec. Elle s'applique également aux examens Dynamics. Par contre, il faut bien le prévoir dès la première inscription.
Tous les détails ici.
Symptôme du problème :
Le problème est le suivant. Lorsque vous lancez Microsoft Virtual PC 2007, le splash screen bleu s'affiche mais la console n'apparâit pas. Pourtant la barre de tâche indique que Virtual PC est bien démarré et un icone de notification apparait même dans la barre de notification en bas à droite de Windows. En fait, ce qui se passe, c'est que la console est positionnée quelque part en dehors des dimensions de l'écran et semble donc cacher.
Fausse et bonne piste :
J'ai longtemps cru que cela devait avoir un rapport avec Windows Vista mais j'ai enfin trouvé comment résoudre la solution par le biais d'un internaute ayant rencontré le même souci sur une config Windows XP.
La solution pour retrouver la console positionnée correctement au centre de votre écran est donnée ici : http://www.essjae.com/blog/default.asp?id=43
A qui la faute ?
Là par contre, je n'ai toujours pas la moindre piste sur ce qui peut provoquer cela. J'ai d'ailleurs eu deux fois de suite le souci. La première fois je l'avais résolu en réussissant à récupérer ma fenêtre par le biais de la commande Déplacer qu'on trouve dans le menu contextuel de n'importe quelle application sur la barre de tâche de Windows.
Si quelqu'un sait le pourquoi du comment, je suis donc preneuse...
Cet article propose une solution simple pour gérer ses documents clients avec Microsoft Dynamics CRM 4.0 sur la base d'une bibliothèque de documents réseau.
Le résultat est un onglet dédié du formulaire correspondant (Contact ou Compte ou toute autre entité) qui affiche directement le contenu du dossier réseau dans un volet Windows Explorer intégré à CRM :
Structure de la base documentaire
Pour établir la bibliothèque de documents clients, le principe consiste à travailler sur la base d'un répertoire partagé sur le réseau d'entreprise. Pour être à même d'attacher les documents au compte ou directement au contact dans CRM, la structure de la base documentaire peut s'appuyer tout simplement sur une organisation comme suit :
- dossier racine [partagé] avec un nom de votre choix
- un dossier par compte client reprenant le nom du compte lui-même
- un sous-dossier par contact client reprenant le nom du contact complet (par exemple : <prénom nom>)
Intégration de Windows Explorer à CRM
J'ai lu un article très intéressant sur le blog de l'équipe de Corp qui présentait une intégration de Windows Explorer basée sur l'utilisation d'un web part standard fourni par WSS (Windows SharePoint Services) nommé Page Viewer WebPart.
Mais en creusant un peu, il s'avère que ce webpart n'a finalement pour rendu qu'une simple iFrame standard HTML!! Ce qui m'amène à une méthode bien plus simple qui ne nécessite aucunement l'installation de WSS (d'ailleurs pas franchement super intuitive et évidente sur votre serveur en prod) et vise à mettre en oeuvre un champ de type IFRAME dans les formulaires des entités Compte et Contact. En effet, une iFrame peut référencer une url pour afficher le contenu d'une page web, mais également un chemin réseau !
Exemple de mise en oeuvre pour l'entité COMPTE
Prenons l'exemple de l'entité Compte : Le principe consiste donc à :
- créer un nouvel onglet dans le formulaire, que l'on nommerait par exemple "Documents".
- créer une section sans titre en acceptant les paramètres par défaut.

- ajouter un champ de type IFRAME dans la section. Attribuez lui un nom.
- configurer l'IFRAME pour qu'elle occupe tout l'espace disponible sur le formulaire.
- désactiver la sécurité de script inter-frame.
- attribuer au formulaire une url vide par défaut : "about:blank". Le chemin du dossier associé au compte doit être déterminé par script dynamiquement au moment de l'exécution.
Au final, le formulaire ressemble à ceci :

Code de chargement dynamique du chemin en fonction du contexte
- Ajouter au code du formulaire de l'entité Compte en réponse à l'évènement Form_OnLoad le code suivant :
//----------------------------------------------------------------------------------
//Déclarations de constante pour le type de formulaire
var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;
var CRM_FORM_TYPE_READONLY = 3;
var CRM_FORM_TYPE_DISABLED = 4;
var CRM_FORM_TYPE_QUICKCREATE = 5;
var CRM_FORM_TYPE_BULKEDIT = 6;
//Affichage de la bibliothèque de documents du compte
displayDocumentLibrary();
// Affichage de la base documentaire pour le compte en cours
function displayDocumentLibrary()
{
//Cas du mode formulaire en création rapide
if(crmForm.FormType == CRM_FORM_TYPE_QUICKCREATE){
return;
}
//Dans tous les autres modes du formulaire
//Initialisation de l'iFrame à vide
crmForm.all.IFRAME_Documents.src = "about:blank";
//Le nom du compte donne le nom du dossier dans la base documentaire
//contenant les documents relatifs au compte
var folderName = crmForm.all.name.DataValue ;
//Selon le type d'affichage
switch (crmForm.FormType)
{
case CRM_FORM_TYPE_CREATE:
case CRM_FORM_TYPE_BULKEDIT:
//iFrame par défaut à vide
break;
case CRM_FORM_TYPE_UPDATE:
case CRM_FORM_TYPE_READONLY:
case CRM_FORM_TYPE_DISABLED:
if(folderName != null)
{
//Chargement dans l'iFrame du chemin vers le dossier du compte dans la base documentaire
crmForm.all.IFRAME_Documents.src = "\\\\<NomDuServeur>\\<NomDuPartage>\\" + folderName;
}
break;
}
}
//----------------------------------------------------------------------------------
- Sauvegarder les changements puis publier l'entité Compte.
- Vous obtenez le résultat suivant (à condition que le dossier correspondant existe dans la base documentaire) :
Dans cette fenêtre, vous avez le menu de Windows Explorer qui s'affiche sur un clic droit. Le drag and drop est disponible et en cliquant sur un document, vous l'ouvrez instantanément.
Exemple de mise en oeuvre pour l'entité CONTACT
Pour l'entité Contact, reprenez l'ensemble de la procédure précédente avec le code :
//----------------------------------------------------------------------------------
var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;
var CRM_FORM_TYPE_READONLY = 3;
var CRM_FORM_TYPE_DISABLED = 4;
var CRM_FORM_TYPE_QUICKCREATE = 5;
var CRM_FORM_TYPE_BULKEDIT = 6;
// Affichage de la base documentaire pour le contact en cours
displayDocumentLibrary();
// Affichage de la base documentaire pour le contact en cours
function displayDocumentLibrary()
{
//Cas du mode formulaire en création rapide
if(crmForm.FormType == CRM_FORM_TYPE_QUICKCREATE){
return;
}
//Dans tous les autres modes du formulaire
//Initialisation de l'iFrame à vide
crmForm.all.IFRAME_Documents.src = "about:blank";
//Le nom complet du contact donne le nom du dossier dans la base documentaire
//contenant les documents relatifs au contact
var contactFolderName = crmForm.all.firstname.DataValue + " " + crmForm.all.lastname.DataValue ;
//Le nom du compte parent donne le nom du dossier dans la base documentaire
//contenant le dossier contact
var parentAccount = new Array();
parentAccount = crmForm.all.parentcustomerid.DataValue;
if(parentAccount != null)
var accountFolderName = parentAccount[0].name;
else
//Erreur : Ce contact est incomplet car il ne contient pas de compte parent
return;
//Selon le type d'affichage
switch (crmForm.FormType)
{
case CRM_FORM_TYPE_CREATE:
case CRM_FORM_TYPE_BULKEDIT:
//iFrame par défaut à vide
break;
case CRM_FORM_TYPE_UPDATE:
case CRM_FORM_TYPE_READONLY:
case CRM_FORM_TYPE_DISABLED:
if(contactFolderName != null &&accountFolderName != null)
{
//Chargement dans l'iFrame du chemin vers le dossier du compte dans la base documentaire
crmForm.all.IFRAME_Documents.src = "\\\\<NomDuServeur>\\<NomDuPartage>\\" + accountFolderName + "\\" + contactFolderName;
}
break;
}
}
//----------------------------------------------------------------------------------
- Sauvegarder les changements puis publier l'entité Contact.
- Vous obtenez le résultat suivant (à condition que le dossier correspondant existe dans la base documentaire) :
Pour terminer, il faudrait bien sûr définir une stratégie pour la création des dossiers.
Si vous optez pour une création dynamique, vous pouvez par exemple créer le dossier par script en vous appuyant sur la remarque fait par un internaute dans l'article de Corp qui exploite l'objet Scripting.FileSystemObject.
Bonne continuation !
J'ai enfin trouvé une procédure qui tient la route !
http://zune-france.monforum.fr/installer-zune-sur-un-windows-vista-en-francais-vp1662611.html
Juste deux petits conseils : d'abord exécuter les commandes "net localgroup" sous le prompt MS-DOS en lançant l'Invite de commande en tant qu'administrateur de votre poste, sinon les commandes échouent. Ensuite, pensez à redémarrer (ou en tous cas, fermer la session) pour que l'insertion de votre compte utilisateur dans les deux groupes soit prise en compte. Avec ça, l'installation est tip top.
Pour utiliser l'API de cartographie de Virtual Earth dans un formulaire CRM, rien de plus simple. Voici un exemple de la procédure à suivre pour afficher sur une carte la position d'un compte enregistré dans CRM :
- La première étape consiste à créer une page sur la base du modèle ci-dessous :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5"></script>
<script>
//Déclaration des variables globales
var map = null;
var line = null;
var city = null;
var postalcode = null;
var country = null;
var destinationAddress = null ;
function DisplayMap(){
//Récupération des informations d'adresse dans le formulaire CRM
line = parent.document.forms[0].all.address1_line1.DataValue;
postalcode= parent.document.forms[0].all.address1_postalcode.DataValue;
city = parent.document.forms[0].all.address1_city.DataValue;
country = parent.document.forms[0].all.address1_country.DataValue;
//Création de la carte
map = new VEMap('myMap');
map.LoadMap();
//Construction de l'adresse du compte à transmettre à Virtual Earth
destinationAddress = line + "," + city + "," + country ;
//Recherche de l'adresse du compte sur la carte (traitement asynchrone avec fonction de callback)
map.Find(null, destinationAddress, null, null, null, null, null, null, false, null, callback);
}
//Traitement de la fin de la recherche
function callback() {
//Configuraton du zoom au niveau voulu (entre 1 et 19)
map.SetZoomiLevel(16);
//Affichage d'une punaise personnalisée au centre de la carte
DisplayPushpin();
}
//Affichage d'une punaise au centre de la carte
function DisplayPushpin() {
//Création de la forme au point central de la carte
var shape = new VEShape(VEShapeType.Pushpin, map.GetCenter());
//Configuration du titre
shape.SetTitle("Par exemple adresse du compte");
shape.SetDescription(line + "<br/>" + npa + " " + city + "<br/>" + country);
map.AddShape(shape);
}
</script>
</head>
<body onload="DisplayMap();">
<div id='myMap'>Chargement en cours, veuillez patienter...</div>
</body>
</html>
- Publiez cette page ensuite sur le site CRM (c'est-à-dire sous C:\Program Files\Microsoft CRM\CRMWeb pour une installation par défaut sur le port 5555) par exemple dans un nouveau dossier nommé VE. Nommez la page VE.htm.
- Pour ajouter la carte sur le formulaire de l'entité Compte, il suffit d'ajouter une iFrame à l'endroit voulu dans le formulaire (par exemple, sous un nouvel onglet dans une section vierge). Configurez les paramètres de l'iFrame comme suit :
Attention de ne pas oublier de décocher la restriction de sécurité pour le cross-scripting. Cela bloquerait toute intéraction entre l'iFrame et votre formulaire.
- Publiez les modifications sur l'entité Compte.
- Vous obtenez un rendu du type :
Attention toutefois à l'algorithme de recherche de l'adresse dans la page html. N'hésitez pas à l'ajuster en fonction des adresses que vos utilisateurs renseignent dans CRM. Il suffit par exemple que les champs de CRM ne soient pas correctement renseignés, typiquement l'information concernant le pays est manquante, et vous vous retrouvez sur la carte à Tombouctou...
Melle coach ASP.NET a ajaxisé tout l'été. Résultat, de nouveaux ateliers sont en ligne ici !
Voici la trame de ce nouveau cursus pour découvrir le Framework Microsoft Ajax :
Atelier 1 : Installer l’environnement de développement avec ASP.NET 2.0 AJAX.
Le premier atelier vous présente les étapes de création d’un environnement pour découvrir gratuitement le développement avec ASP.NET 2.0 AJAX. Il décrit les composants minimums nécessaires et la procédure à suivre pour l’installation.
Atelier 2 : Activer les extensions AJAX sur vos projets web
L’atelier 2 présente la marche à suivre pour configurer vos projets de développement web avec les extensions AJAX, que vous démarriez sur un nouveau projet web vierge ou que vous souhaitiez configurer une application web existante développée avec ASP.NET 2.0 de façon à enrichir et améliorer son interface.
Atelier 3 : Développer avec la technologie AJAX
L’atelier 3 montre comment avec les contrôles serveur web fournis par les Extensions AJAX, il est possible d’exploiter très facilement la technologie Ajax dans vos applications web de façon à diminuer la bande passante et améliorer la rapidité de vos applications.
Atelier 4 : Développer avec les contrôles Extender standards
L’atelier 4 montre comment facilement étendre les contrôles serveurs web ASP.NET 2.0 standards avec les nouveaux contrôles serveurs web Extender fournis par le Control Toolkit AJAX de façon à étendre et enrichir leur comportement et leur rendu.
Atelier 5: Développer avec les contrôles Extender et les services d’ASP.NET 2.0
L’atelier 5 illustre l’utilisation des services d’ASP.NET 2.0, tel que le service de Profil, au travers des nouveaux contrôles serveur web Extender fournis par le Control Toolkit AJAX.
Atelier 6: Développer avec les contrôles Extender et les services web
L’atelier 6 montre comment exploiter des contrôles serveur web Extender avancés du Control Toolkit AJAX, qui combinent les approches de développement client et serveur via l’utilisation des services web.
Atelier 7: Développer un contrôle Extender personnalisé
Pour terminer ce tutorial, nous vous proposons de découvrir comment vous aussi vous pouvez apporter votre contribution au projet communautaire du Control Toolkit AJAX, en développant un contrôle serveur web Extender entièrement personnalisé.
A vos claviers !
Dynamics CRM...Avez-vous entendu parler de cette solution applicative développée par Microsoft ? Savez-vous qu'elle est écrite en .NET et que par voie de conséquence elle offre des opportunités de projets d'extension et d'intégration en .NET super intéressants ?
Non ? Et bien, si vous avez des compétences .NET ou si vous êtes un pro du JavaScript, je vous invite à jeter un oeil de plus près sur cet article que nous avons écrit pour vous présenter toutes les possibilités en matière de développement sur le sujet.
Vous serez surpris de voir qu'il y a de quoi bien s'éclater !
Sachez que c'est un produit qui continue d'aller de l'avant avec une prochaine version qui s'intégrera avec Windows Workflow Foundation...de quoi voir venir!
Le problème est du même ordre que celui décrit dans le post concernant le menu Paramètres.
Pour que l'option soit disponible, assurez-vous de tuer le processus Outlook avec le gestionnaire de tâches de Windows puis relancez votre client web CRM.

Si celui-ci n'est toujours pas disponible, vérifiez que l'utilisateur a les privilèges adéquats pour manipuler ses paramètres personnels : pour cela examinez le privilège Paramètres utilisateur dans l'onglet Gestion d'entreprise du(des) rôle(s) concerné(s).
Il peut arriver que la barre d'outils CRM dans le client CRM pour Outlook ne réagisse plus. Par exemple, les boutons semblent actifs mais rien ne se passe lorsque vous cliquez sur ceux-ci.
Une première solution consiste à vérifier que l'add-in n'a pas été déselectionné dans Outlook :
- Dans le menu Outils > Options, sélectionnez l'onglet Autre.
- Cliquez Options avancées... puis Compléments COM...
- Vérifiez que l'add-in est sélectionné.

Si le complément est actif, déroulez la procédure suivante :
- Fermez Outllook et vérifiez que le processus est bien arrêté à l'aide du Gestionnaire de tâches de Windows.
- Supprimez le fichier Extend.dat sous C:\Documents and Settings\<login de l'utilisateur>\Local Settings\Application Data\Microsoft\Outlook.
- Relancez le programme d'installation du client CRM pour Outlook en mode réparation. Le fichier Extend.dat est automatiquement recréé.
Avec tout ça, votre barre d'outils CRM doit redevenir opérationnelle !
Je suis tombée sur ce besoin dans le cadre de l'utilisation du client Microsoft Dynamics CRM 3.0 pour Outlook pour lequel le carnet d'adresses est plutôt bien fourni
.
En effet, dans le client CRM pour Outlook, le carnet d'adresse contient bien évidemment la liste globale des adresses du serveur Exchange, la liste de vos contacts personnels mais également le carnet d'adresses de CRM avec les contacts CRM, les comptes CRM, les utilisateurs CRM etc...
Du coup, lorsque vous tapez manuellement l'adresse d'un destinataire, par exemple dans la zone A... ou Cc... d'un nouveau message, la fonctionnalité de reconnaissance automatique de la saisie d'Outlook doit farfouiller dans tout le carnet d'adresse pour résoudre le nom tapé.
Comme le carnet d'adresses contient plusieurs listes, Outlook procède par ordre, par défaut il cherche d’abord dans la Liste d’adresse globale, ensuite dans la liste des adresses CRM et enfin dans la liste des contacts Outlook.
Si vous avez besoin de modifier l'ordre par défaut pour mettre en avant telle ou telle liste d'adresse, il suffit de :
- cliquer sur l'icône Carnet d'adresses (icône représentant un livre ouvert) dans la barre d'outils Standard d'Outlook.
- sélectionner le menu Outils > Options.
- puis de modifier l’ordre de la résolution des adresses via la liste proposée en utilisant les boutons monter/descendre.

Une fois l'ordre configuré, il peut être utile de rafraîchir le cache de la saisie automatique de façon à ce que l'ancien mode de saisie ne perturbe pas la nouvelle configuration. Pour cela suivez les instructions ici.
Lorsque vous saisissez manuellement un destinataire d'un email (plutôt que d'utiliser les boutons A... ou Cc...), Outlook vous aide en vous proposant une liste des personnes auxquels vous avez déja adressés un email. C'est la fonctionnalité de saisie automatique.
Si vous voulez juste supprimer un nom dans la liste que la saisie automatique vous propose, par exemple parce qu'il n'est plus valide ou incorrect, il suffit de le sélectionner dans la liste et de le supprimer avec la touche Suppr.
En revanche, si c'est toute la liste que vous voulez réinitialiser, il faut complètement réinitialiser le cache construit par Outlook. Je suis tombée sur ce besoin après avoir changé l'ordre de résolution des noms que fait Outlook à partir du carnet d'adresses. Le cache ne correspondait plus à l'ordre de résolution nouvellement configuré.
Pour vider le cache, il suffit de supprimer ou renommer le fichier d'extension *.nk2 dans le dossier de vos paramètres locaux (pensez à configurer l'Explorateur de Windows pour afficher les fichiers cachés si vous voulez voir le dossier en question):
C:\Documents and Settings\<nom de votre compte utilisateur>\Application Data\Microsoft\Outlook
Lorsque vous redémarrez Outlook, le cache est vide !
Il l'avait annoncé pour le début du mois de juin... le second correctif (rollup 2) de Microsoft CRM 3.0 est finalement disponible depuis hier !
Vous trouverez une liste des problèmes qu'il résoud et comment le télécharger et l'installer ici.
Les 10 derniers blogs postés
-
Silverlight 3 : Communication et multicast par
Kévin Gosse le il y a 6 heures et 13 minutes
-
[Perso] Découvertes estivales : Linux (Part I) par
Le blog de FremyCompany le il y a 8 heures et 55 minutes
-
[Refactoring] ReSharper pour Visual Studio 2010 (Preview) par
Thomas Jaskula le il y a 23 heures et 31 minutes
-
[Refactoring] Analyser vos exceptions avec ReSharper Exceptional par
Thomas Jaskula le 07-03-2009, 23:36
-
SharePoint 2007 : patterns & practices SharePoint Guidance par
Philippe Sentenac [MVP SharePoint] le 07-03-2009, 09:56
-
[Visual Studio 2010] Les tests cases c’est bien, mais je vais devoir tout réécrire ? par
Etienne Margraff le 07-03-2009, 09:00
-
MVP[Gribouillon].AddYear par
The Grib's Lair [Sébastien PICAMELOT - MVP SharePoint] le 07-03-2009, 08:45
-
Clinique INSIA - Projet de fin d’Etudes (Silverlight 3 MVVM et OutOfBrowser, WCF, TFS) - Part 1 par
David REI le 07-02-2009, 23:38
-
C’est la crise ? Bah pourquoi cramer du budget pub alors ? par
Nix's Blog le 07-02-2009, 15:31
-
Soyons MVP ! par
TheSaib .NET blog le 07-02-2009, 12:15