Rechercher dans ce blog

vendredi 4 novembre 2011

Certifié Dynamics CRM 2011



Depuis le 31 Octobre, je suis certifié sur Dynamics CRM 2011 Customization and Configuration.


lundi 31 octobre 2011

Ajout d'une zone de navigation

Dans cet article, nous allons ajouter une zone de navigation.


Il faut créer une solution avec l'entité SiteMap. Puis exporter cette solution en non managée.
Ajouter ensuite la section comme indiquer ci-dessous.


L'exemple est issu du Kit de développement http://msdn.microsoft.com/en-us/library/gg327933.aspx 
Mettre à jour la solution puis l'import. Faire un F5 pour voir la nouvelle zone de navigation.

Erreur pendant l'import de solution



L'import de solution peut échouer avec l'erreur "Des champs non valides ont été spécifiés pour l'entité."
Pour ceux qui ont l'anglais comme langue de base : "Fields that are not valid were specified for the entity".

Cliquer sur Fichier journal de téléchargement pour générer le fichier xml des logs, nommé importlog_[Nom de la solution][Version].xml.


Au niveau de l'onglet Composants, la liste des erreurs indique le Code d'erreur et une description de l'erreur.
Pour cette exemple, l'attribut new_test possède un type différent entre celle de la solution à importer et l'attribut de la plateforme.

Pour résoudre ce problème, il faut supprimer cet attribut dans la plateforme et ensuite importer la solution.

dimanche 30 octobre 2011

Outil de partage d'écran : join.me

https://join.me/











La version gratuite de Join.me permet de partager son écran jusqu'à 250 utilisateurs.

Librairie de génération de trace : log4net et NLog

http://logging.apache.org/log4net/

La librairie Apache log4net est un outil permettant d'aider les développeurs sur le traitement des traces.

http://nlog-project.org/

La librairie NLog est compatible .Net, Silverlight et Windows Phone.

Outil de nettoyage : CCleaner







http://www.piriform.com/CCLEANER

CCleaner est l'outil de nettoyage des ordinateurs Windows.
Il rend l'ordinateur plus sécurisé et plus rapide.

samedi 29 octobre 2011

Ajouter un ToolTip à un champ de saisi

Ce code permet d'ajouter un ToolTip à un champ de saisi, comme pour informer l'utilisateur du format du numéro de téléphone.
L'exemple fourni affiche un ToolTip au niveau du Téléphone principal d'un compte.

Ajouter ce code dans le OnLoad d'une entité.
function AddToolTip(controlId, toolTip){
      var ctl = document.getElementById( controlId );
      ctl.ToolTip = toolTip; ctl.attachEvent( "onfocus" , ShowToolTip );
}

function ShowToolTip(){
      var ctl = event.srcElement; TooltipPopup = window.createPopup();
      var ToolTipHTML  = "
" + ctl.ToolTip + "
";       TooltipPopup.document.body.innerHTML = ToolTipHTML;            var Pos = GetControlPosition ( ctl );             TooltipPopup.show( Pos.X + 8 , Pos.Y + 2 , 230 , 19 , null ); } function GetControlPosition( ctl ){       var Pos = new Object();  var ctlHeight = ctl.offsetHeight; var iY = 0, iX = 0;       while( ctl != null )  {  iY += ctl.offsetTop;  iX += ctl.offsetLeft; ctl = ctl.offsetParent;  }       Pos.X = iX + screenLeft; Pos.Y = iY + screenTop + ctlHeight;  return Pos;} AddToolTip('telephone1', 'Le format est : \"+33 01 23 45 67 89\"');

Ajouter un groupe de relation dans un formulaire

En standard, le CRM offre que quatre groupes de relation dans un formulaire : Détails, Ventes, Service et Marketing.


Le code suivant permet d'ajouter un nouveau groupe de relation. Il doit être ajouté dans l'événement OnLoad d'une entité.

// =====================================================
// JsNavBar v1.0 - 10/30/2009 (CRM 4.0)
// =====================================================
JsNavBar = function(displayName) {
 var navBarDisplayName = displayName;
 var navBarItemArray = new Array();

 JsNavBar.prototype.AddNavBarItem = function(navBarItemId) {
  navBarItemArray[navBarItemArray.length] = document.getElementById(navBarItemId);};

 JsNavBar.prototype.Show = function() {
  var crmNavBar = document.getElementById("crmNavBar");
  if (crmNavBar != null) {

   var navBarItems = document.createElement("UL");
   navBarItems.style.display = "inline";
   navBarItems.className = "ms-crm-Nav-Group-Subareas";

   for (i = 0; i < navBarItemArray.length; i++) {
    if (navBarItemArray[i] != null) {
     navBarItems.appendChild(navBarItemArray[i]).parentNode;
    }
   }
   if (navBarItems.hasChildNodes()) {
    var newNavBar = document.createElement("LI");
    newNavBar.className = "ms-crm-Nav-Group";
    newNavBar.innerHTML = '' + navBarDisplayName + ': Expanded, click to collapse';
    newNavBar.appendChild(navBarItems);

    if (crmNavBar.childNodes.length > 1) {
     var secondNav = crmNavBar.childNodes[1];
     crmNavBar.insertBefore(newNavBar, secondNav);

    } else {
     crmNavBar.appendChild(newNavBar);
    }
   }
  }
 };
};
L'appel de la fonction pour la création et l'ajout de groupe.
var demoNavBar = new JsNavBar("Demo");  
demoNavBar.AddNavBarItem("navSubAct");  
demoNavBar.AddNavBarItem("navRelationships");  
demoNavBar.Show();
Nous obtenons le groupe nommé Demo contenant les deux relations ajoutées.

Cacher le bouton Télécopie



Ce message explique comment cacher le bouton Télécopie dans le menu Nouveau des activités.


Créer une solution avec comme éléments : Activité et Rubans de l'application.


Ajouter dans le fichier customizations.xml, la partie comme ci-dessous.


Après modification de la solution, l'importer. Le bouton Télécopie n'est plus là.


vendredi 28 octobre 2011

Mise à jour du SDK pour CRM 2011: 5.0.7

Version: 5.0.7

Mise à jour des assemblys pour le Rollup 5

Mise à jour d'articles :
- Gérer les identités utilisateurs dans Microsoft Office 365
- Liste des extensions CRM 
- Mapping des rôles de sécurité
- Liste des personnalisations non supportées
- Création ou la modification des metadata à partir d'un plug-in n'est pas supporté
- Nouveauté de collaboration
- Auditer les droits d'accès des utilisateurs
- Clarification des types de messages supportés
- Recommandation d'utilisation de l'import de données
- Détection des doublons avec des valeurs vides
- Utilisation des RDL dans CRM Online
- Dialogs : liens dynamiques, lookup et données de type date
- Méthode SetValue sur les attributs Lookup

Mise à jour des outils :
- Helper code et la listes des messages supportés des plug-ins
- Plug-in Registration
- Entity Metadata Browser

Mise à jour des exemples de code :
- Recherche de OptionSetMetadata
- Améliore la sécurité
- Traiter et fermer un incident.
- Conversion entre FetchXML et QueryExpression
- Distribution d'une activité de campagne
- Gestion du dédoublonnage
- Gestion des régles de mapping d'import de données
- Export de la définition du ruban
- Création de commandes et de fermeture en gagné
- Création d'enregistrements en utilisant l'import de données avec un mapping complexe
- Qualification d'un lead en compte, contact et opportunité
- Lecture des informations de fuseau horaire
- Partage d'entité
- Traitement d'une opportunité
- Valider le changement du statut d'une entité
- Créer un utilisateur pour CRM Online