Rechercher dans ce blog

samedi 6 août 2011

Erreur : le service de suppression n'a pas pu nettoyer les tables Asyncoperation

Lorsque vous exécutez Microsoft Dynamics CRM 4.0, la table AsyncOperationBase s'agrandit pour être très volumineux. Lorsque la table contient des millions d'enregistrements, les performances sont lentes.

De plus, des erreurs sont enregistrées sur le serveur Microsoft Dynamics CRM dans le journal des événements applications.

Nettoyage manuel des tables Asyncoperation.
http://support.microsoft.com/kb/968520/fr

Activation du service de suppression des tables Asyncoperation.
http://support.microsoft.com/kb/974896/fr

Développer avec le Framework xRM : conseils, astuces et bonnes pratiques

http://www.xrmvirtual.com/events/tips_and_tricks_CRM2011


Se former sur Dynamics CRM
- Planification
- Files d'attente
- Listes marketing
- Réorientation des entités
- Gestion de la sécurité
- Les utilisateurs peuvent avoir des fonctionnalités complétement différentes
- Gestion des doublons

Les projets ne sont pas tous xRM.

Penser xRM
-Déterminer le x dans ton xRM.
-Le x est normalement le nœud central de ton application

Bonnes pratiques
- Éviter d'utiliser du JavaScript qui appelle le serveur.
- Utiliser les Plug-ins PreCreate et PreUpdate.
- Modifier une entité sur le déclenchement de Plug-ins.
- Renseigner ou valider les champs à travers des Plug-ins.
- Établir des projets standards.
- Inclure des commentaires dans le code des Plug-ins.
- Ne pas sur dimensionner.
- Utiliser des messages d'exception personnalisés pour la validation.
- Utiliser des Plug-ins Asynchrones pour lancer des longs traitements.
- Enregistrer les résultats du Plug-in dans une entité.
- Générer les classes des entités avec CRMSVCUtil.
- Étendre les classes des entités pour un code réutilisable.
- Faire une bonne gestion du cache des Plug-ins.

Nettoyer le cache
public static void ClearCache(string entityName)
{
 const string format ="adxdependency:crm:entity:{0}";
 var dependency = string.Format(format,entityName).ToLower();
 var cache = Microsoft.Xrm.Client;Caching.CacheManager.GetBaseCache();
 cache.Remove(dependency);
}

- Créer des relations par ID non par objet
A la place de Account.PrimaryContact=ContactEntity utiliser Account.PrimaryContactId=Contactentity.ContactID

- Suivre les changements de personnalisation
- Planifier à l'avance
- Créer des checklists du déploiement
- Utiliser une seule organisation de développement pour le déploiement
- Enregistrer les Plug-ins dans la base de données.
- Enregistrer les Dlls dans le GAC.
- Placer tous les points de terminaisons et les fichiers de configuration Async.

Non supporté
- Documenter les modifications non supportées
- Les niveaux : Modification d'interface, changement de code
- Important pour les mises à jour

Débogage du CRM
- Visual Studio Remote Debugger
- Activer les fichiers de trace avec CRMDiagTool

vendredi 5 août 2011

Vidéos sur CRM 2011 Online

L'équipe Microsoft Dynamics CRM Online a créé et maintient le site www.democrmonline.com
Il contient des vidéos pour aider à utiliser et à administrer CRM 2011.

lundi 1 août 2011

Mise à jour du SDK pour CRM 2011: 5.0.5

Version: 5.0.5

Mise à jour\Ajout des assemblies:
- Compatibilité Rollup 3

Mise à jour\Ajout d'articles:
- Seul le format de mise à jour de l'import de données est XML Spreadsheet 2003.
- Information sur le Developer Toolkit.
- Information sur les paramètres AsyncSelectMaxItems ajoutés par le Rollup 3.
- Ruban : Certaines valeurs de l'attribut DisplayMode cause une erreur.
- Ruban : Explication des rôles d'activation et désactivation des composants de ruban appliqués sur les pages personnalisées.
- Classe Entity.
- Liste des prérequis pour le programme de démarrage rapide.
- Guide pour deployer des plug-ins.
- SiteMap : change l'attribut CheckExtensionProperty pour indiquer un usage interne.
- Démonstration d'utilisation avec les application Silverlight.
- Indique que la collection Xrm.Page.ui.formSelector.items est vide quand un seul formulaire est disponible.

Mise à jour\Ajout d'outils:
- PluginProfiler.exe.
- Prise en charge du profiler dans Plu-in Registration Tool.

Mise à jour\Ajout d'exemples:
- Exemples pour Microsoft Visual Basic .NET.
- Utilisation de DeleteAuditRequest.
- Utilisation de RetrieveAuditPartitionListRequest.
- Utilisation de RetrieveRecordChangeHistoryRequest.
- Utilisation de RetrieveOrganizationRequest.
- Utilisation de RetrieveOrganizationsRequest.
- Association et désassociation en utilisant REST Endpoint.
- Distribution des activités de campagne avec une liste dynamique et statique.
- Inclure des informations complémentaires en utilisant la propriété QueueItemProperties.
- Exemple de fichier généré par CrmSvcUtil.exe contenant les listes de valeur, statut et raison de statut.
- Utilisation des activités.

dimanche 31 juillet 2011

WPC 2011 : keynote du 12 juillet

Présenté par Kirill Tatatinov, Président de la division Microsoft Business solution et Varun Krishna pour la démo.

Un état des lieux de Microsoft Dynamics CRM.


L'annonce de la mise à jour du CRM Online.

Varun nous présente Dynamics CRM sur plusieurs plateform.

 Sur Windows Phone :

L'ordinateur avec une personnalisation utilisant les réseaux sociaux et Sharepoint Online.
 

 


 Sur une tablette :

 
Une petite relance sur le CRM Online.

 

Accent dans les menus personnalisés

Pour créer un menu personnalisé, nous modifions le fichier  ISV.config. 
Si le titre du menu contient un accent, le caractère accentué ne sera pas affiché dans l'interface du CRM.

  

Pour résoudre ce problème, il faut utiliser le code numérique du caractère.


Voici une liste non exhaustive des caractères accentués avec leur code numérique.


Lien avec Twitter - Partie 3

Dans cet article, nous allons utiliser le gadget de profil pour afficher les tweets du profil portant le même nom que le compte sélectionné.
Le paramétrage du gadget se trouve : http://twitter.com/about/resources/widgets/widget_profile

Tout d'abord, créons une page HTML avec le code suivant :


Dans l'onglet Twitter, nous obtenons les tweets du profil Microsoft. 

Pour l'entreprise Contoso :

vendredi 29 juillet 2011

Correctif cumulatif 3 pour Microsoft Dynamics CRM 2011

Version: 05.00.9688.1244
  • Import d'une solution contenant un plug-in ayant des méthodes vide
  • Résultat de recherche pour les vues systèmes dans le client pour Outlook
  • Activation de compression http avec le client pour Outlook
  • Demande d'expédition en arrière-plan du client pour Outlook
  • Liste de choix dans le client pour Outlook
  • Rendu des rubans et des menus dans le client pour Outlook
  • Le champ Date de début dans le Paramètres d'année fiscale.
  • Case à cocher Définir cet ordinateur en tant que client de synchronisation
  • Mappage des données sur les importations
  • E-mails en double générés
  • Synchronisation du client pour Outlook
  • Valeur arrondie d'un champ de type durée avec la virgule comme séparateur décimal
  • Nouveau paramètre AsyncSelectMaxItems dans la table DeploymentProperties : limite le nombre d'éléments qui peuvent être traités par une seule organisation à un moment donné
  • Accès aux métadonnées
  • E-mail dans un contact pendant la migration CRM4 vers CRM2011
  • Numéro de téléphone dans une activité de type appel téléphonique crée depuis un contact
  • Importation d'une solution

mardi 19 juillet 2011

Lien avec Twitter - Partie 2

Dans cet article, nous allons utiliser le gadget Search de Twitter pour afficher les tweets se rapportant au compte sélectionné.
Le paramétrage du gadget se trouve : http://twitter.com/about/resources/widgets/widget_search

Tout d'abord, créons une page HTML avec le code suivant :


Ajoutons un onglet dans le formulaire de l'entité Compte pour y insérer une Iframe.
Dans l'adresse de l'Iframe, indiquons la page précédemment créer.


Nous obtenons le résultat suivant pour le Compte nommé Microsoft.

jeudi 14 juillet 2011

Message d'erreur de Plugin : 0x8004416c

0x8004416c - PluginAssemblyMustHavePublicKeyToken

L'erreur "0x8004416c" survient lorsque l'assembly du Plugin n'a pas été signé.
Pour résoudre, il faut simplement signer l'assembly du Plugin correspondant.