Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Configurer un abonnement par email à un rapport de Microsoft Dynamics CRM 4.0

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.

image

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 :

image

  • 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.

image

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 :

image

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 :

image

  • 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 :

image

  • 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.

image

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.

image

  • 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.

image

  • 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 :

image

  • 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.

image

Quelques liens utiles :

Apprendre à manipuler des données SQL Server Express ou Access avec VB.NET 2008

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 Smile. Il comprend des exemples d'accès à une base SQL Server Express 2005 et une base Microsoft Office Access 2007.

A vos claviers !

Plugin CRM 4.0 qui ne s'execute pas (Child pipeline vs Parent pipeline)

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.

image 

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 :

image

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 :

image

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...

image

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 :

image

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é.

image

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 :

image

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 :

Comment modifier les vues Membres d'une liste marketing dans Dynamics CRM 4.0
  • Les vues Membres d'une liste marketing sont au nombre de trois : Tous les membres, Membres actifs, Membres inactifs.

image  

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

image

  • 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.

image

  • La présentation de la vue est définie dans la balise enfant <layoutxml> :

image

  • Alors que la balise <fetchxml> définit les critères de filtre :

image  

  • 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é !

Tests blancs pour les certifications Microsoft Dynamics CRM 4.0

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 !

 

Se préparer pour les certifications Microsoft Dynamics CRM 4.0

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 Stick out tongue 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.

Toute la lumière sur...la console de Microsoft Virtual PC 2007 qui disparait

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...

Posted: jeudi 27 mars 2008 23:30 par bianca | 5 commentaire(s)
Classé sous :
Gérer ses documents clients avec Microsoft Dynamics CRM 4.0

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 :

image

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>)

Exmple de structure pour la base documentaire  

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.

image

  • 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.

image image

Au final, le formulaire ressemble à ceci :

image

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) :

image

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) :

image

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 !

Installer Zune sur Windows Vista en Français

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.

 

 

Intégrer Virtual Earth à Microsoft Dynamics CRM 3.0

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...

Suivez le coach ASP.NET pour découvrir le Framework Microsoft Ajax

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 !

Développer en .NET avec Microsoft CRM

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 paramétrage du fuseau horaire n'est pas disponible dans le client web CRM

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).

La barre d'outils CRM dans le client CRM pour Outlook ne fonctionne plus

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 !

Configurer l'ordre de résolution des noms de la saisie automatique de Microsoft Office Outlook

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 Stick out tongue.

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.

Comment vider le cache de la saisie automatique dans Microsoft Office Outlook

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 !

Le correctif n°2 de Microsoft CRM 3.0 est enfin disponible !

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.

Le menu Paramètres ne s'affiche pas dans le client web CRM

Je suis tombée sur le problème suivant :
Parfois, le menu Paramètres de la navigation générale de CRM disparaît même si on est sensé y avoir accès !

Pour rappel, ce menu Paramètres n'est accessible qu'à partir du client web et n'est donc pas disponible depuis les clients CRM pour Outlook (ni bureau ni portable).

Le problème survient si vous accédez CRM alternativement de l'une ou l'autre interface cliente à partir d'un même poste. En effet, si vous avez le client CRM pour Outlook installé sur votre poste, lorsque vous lancez le client web, le menu Paramètres n'est parfois pas disponible Indifferent...

Le problème vient du fait que la carte du site (SiteMap) est mise en cache par le client CRM pour Outlook. Donc lorsque vous lancez le client web de CRM, il y a interférence et les pages demandées sont extraites du cache au lieu d'être redemandées au serveur. Du coup, l'option de menu Paramètres n'apparaissant pas dans le cache de pages Outlook, vous ne la voyez pas !

Donc si vous accédez CRM via les deux interfaces clientes du même poste, une solution simple pour ne pas avoir le souci est de toujours bien vous assurer que le processus Outlook est complètement terminé avant de lancer le client web CRM.

Une autre solution infaillible est de configurer le client Outlook pour pointer sur l'adresse IP(ou une en-tête d'hôte) du serveur CRM plutôt que sur l'url du site. Cela empêche les interférences.

Changez l'url du client Outlook via la clé de registre : HKEY_CURRENT_USER\Software\Microsoft\MSCRMClient

Comment ajouter un message de confirmation lors d'une suppression dans un GridView ou un DetailsView ?

Souvent on souhaiterait pouvoir ajouter un message de confirmation lors de la suppression d'un élément dans un contrôle de type GridView ou DetailsView, de sortes que l'utilisateur puisse annuler la suppression s'il le souhaite.

Pour cela, suivez les étapes suivantes :

  1. Convertissez la colonne Supprimer du GridView ou du DetailsView en template.
  2. Ajoutez au contrôle LinkButton (généré dans le template) l'attribut OnClientClick comme suit :

<asp:TemplateField ShowHeader="False"> <ItemTemplate> <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete" OnClientClick="return confirm('Etes-vous sûr de vouloir supprimer cet élément ?');" Text="Supprimer"> </asp:LinkButton> </ItemTemplate> </asp:TemplateField>
Lorsque l'utilisateur cliquera sur le bouton Supprimer, il verra le message suivant :

Message de confirmation

Quelques explications sur la méthode javascript confirm() : 

  • Si l'utilisateur clique OK, la méthode renvoie true et le formulaire est posté sur le serveur. L'ordre de suppression s'exécute alors.
  • S'il clique Annuler, la méthode renvoie false. Le formulaire n'est pas posté donc la suppression n'a pas lieu.
Quels sont tous les coach Microsoft qui existent ?

Les coach, c'est quoi ?
C'est une initiative de Microsoft France pour vous aider à découvrir les techologies Microsoft tout en douceur.

Représenté par une petite figurine type BD, chaque coach se veut un guide sur un sujet de prédilection et vous propose des webcasts, des articles, une procédure d'installation complète de l'environnement nécessaire pour découvrir le sujet (avec des versions d'évaluation des produits ou les versions Express gratuites) et un tutorial pratique avec des ateliers à dérouler pour construire une solution de A à Z.

Actuellement il en existe 4 :

  • le coach ASP.NET 2.0, pour apprendre à développer des applications web avec ASP.NET 2.0 et à utiliser les feuilles de style (CSS).
  • le coach C#, pour apprendre à développer avec le langage C# et le Framework 2.0.
  • le coach VB.NET, pour apprendre à développer avec le langage Visual Basic .NET et le Framework 2.0.
  • le coach VSTS, pour apprendre à utiliser Visual Studio Team System dans vos projets de développement.

Et surtout ne craignez pas d'être largués ! Ces tutoriaux sont fait pour découvrir chaque technologie en partant du principe que vous n'y connaissez rien ou que vous n'avez que quelques notions. A l'inverse, ils ne remplacent pas une formation complète sur le sujet, mais c'est vraiment idéal pour vous mettre le pied à l'étrier !

Alors laissez-vous guider Stick out tongue...



Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01