Microsoft Dynamics CRM - Guide rapide

La gestion de la relation client (CRM) est un système de gestion des interactions d'une entreprise avec les clients actuels et futurs. Cela implique souvent l'utilisation de la technologie pour organiser, automatiser et synchroniser les ventes, le marketing, le service client et le support technique. Le CRM peut aider à réduire les coûts et augmenter la rentabilité en organisant et en automatisant les processus commerciaux qui favorisent la satisfaction et la fidélité des clients.

Microsoft Dynamics CRM

Microsoft Dynamics CRM est un progiciel de gestion de la relation client développé par Microsoft axé sur l'amélioration de la relation client pour toute organisation. Prêt à l'emploi, le produit se concentre principalement sur les secteurs des ventes, du marketing et du service client, bien que Microsoft commercialise Dynamics CRM en tant que plate-forme XRM et encourage ses partenaires à utiliser son cadre propriétaire (basé sur .NET) pour le personnaliser. Au cours des dernières années, il s'est également développé en tant que plateforme d'analyse pilotée par CRM.

La solution CRM peut être utilisée pour améliorer la productivité des ventes et l'efficacité du marketing pour une organisation, gérer la chaîne de support client complète et fournir des informations sociales, de l'intelligence d'affaires et de nombreuses autres fonctionnalités et fonctionnalités prêtes à l'emploi. En tant que produit, Microsoft Dynamics CRM offre également une prise en charge mobile complète pour l'utilisation des applications CRM sur les mobiles et les tablettes.

Au moment de la rédaction de ce didacticiel, la dernière version de CRM est CRM 2016. Cependant, dans ce didacticiel, nous utiliserons la version CRM 2015 Online, car il s'agit de la dernière version stable et fréquemment utilisée dans de nombreuses organisations. Néanmoins, même si vous utilisez d'autres versions de CRM, tous les concepts du didacticiel resteront valables.

Offres de produits

Microsoft Dynamics CRM est proposé en deux catégories -

CRM en ligne

CRM Online est une offre cloud de Microsoft Dynamics CRM où tous les processus backend (tels que les serveurs d'applications, les configurations, les déploiements, les bases de données, les licences, etc.) sont gérés sur des serveurs Microsoft. CRM Online est une offre par abonnement qui est préférée pour les organisations qui ne souhaitent pas gérer toutes les technicités impliquées dans une implémentation CRM. Vous pouvez commencer à configurer votre système en quelques jours (pas des semaines, des mois ou des années) et y accéder sur le Web via votre navigateur.

CRM sur site

CRM on-premise est une offre plus personnalisée et plus robuste de Microsoft Dynamics CRM, où l'application CRM et les bases de données seront déployées sur vos serveurs. Cette offre vous permet de contrôler toutes vos bases de données, personnalisations, déploiements, sauvegardes, licences et autres configurations réseau et matérielles. En général, les organisations qui souhaitent opter pour une solution CRM personnalisée préfèrent le déploiement sur site car elle offre de meilleures capacités d'intégration et de personnalisation.

Du point de vue fonctionnel, les deux offres offrent des fonctionnalités similaires; cependant, ils diffèrent considérablement en termes de mise en œuvre. Les différences sont résumées dans le tableau suivant.

CRM en ligne CRM sur site
Il s'agit d'une solution basée sur le cloud fournie par Microsoft dans laquelle tous les serveurs et bases de données sont gérés par Microsoft. Il s'agit d'une solution sur site fournie par Microsoft dans laquelle les serveurs et les bases de données sont gérés par le client.
Vous pouvez commencer avec une offre en ligne en quelques jours. Vous payez pour les utilisateurs et l'espace utilisé lors de vos déplacements. La mise en place d'une offre sur site nécessite des compétences techniques ainsi que suffisamment de temps pour configurer l'instance CRM et la faire fonctionner.
Il prend en charge relativement moins de personnalisations et d'extensions. Il prend en charge relativement plus de personnalisation et d'extensions.
CRM Online ne permet pas d'effectuer manuellement des options de sauvegarde et de restauration des données, car la base de données est hébergée sur des serveurs Microsoft. Cependant, Microsoft effectue des sauvegardes quotidiennes de la base de données. Le CRM sur site donne la capacité complète de gérer votre base de données.
CRM Online propose divers forfaits basés sur les limites de stockage de données telles que 5 Go, 20 Go, etc. CRM on-premise n'a pas de telles limites sur la taille de stockage, puisque les données existent sur vos propres serveurs.
CRM Online fournit des fonctionnalités intégrées de fonctionnalités telles que les insights, l'écoute sociale, l'analyse, etc. Le CRM sur site entraîne des coûts supplémentaires pour ces fonctionnalités.
CRM Online prend en charge les mises à jour automatiques de la future version. Les mises à jour CRM sur site doivent être installées par l'administrateur.

Accéder au CRM

Microsoft Dynamics CRM est accessible via l'une des options suivantes -

  • Browser
  • Mobile et tablettes
  • Outlook

Concurrents de produits

Microsoft Dynamics CRM est sans aucun doute l'un des meilleurs produits de l'espace CRM. Cependant, voici les autres produits qui sont en concurrence avec Microsoft Dynamics CRM.

  • Salesforce.com
  • Oracle
  • SAP
  • Sage CRM
  • Sucre CRM
  • NetSuite

Versions du produit

Microsoft Dynamics CRM s'est développé au fil des ans à partir de sa version 1.0 en 2003. La dernière version (au moment de la rédaction de cet article) est 2015. Voici la liste chronologique des versions de publication -

  • Microsoft CRM 1.0
  • Microsoft CRM 1.2
  • Microsoft Dynamics CRM 3.0
  • Microsoft Dynamics CRM 4.0
  • Microsoft Dynamics CRM 2011
  • Microsoft Dynamics CRM 2013
  • Microsoft Dynamics CRM 2015
  • Microsoft Dynamics CRM 2016

Commençons par mettre en place notre environnement CRM. Nous utiliserons la version en ligne de CRM 2015, car la version en ligne offre un accès d'essai gratuit d'un mois. En faisant cela, vous n'aurez pas besoin d'acheter de licence pour apprendre le CRM.

Note- Étant donné que Microsoft Dynamics CRM est un produit en pleine croissance, il est possible qu'au moment où vous apprenez cela, vous disposiez d'une version plus récente du produit. Dans ce cas, l'application peut ne pas ressembler exactement à ce que vous verriez dans les captures d'écran de ce didacticiel. Cependant, les concepts de base du produit restent les mêmes. L'aspect et la convivialité et la navigation du produit peuvent changer, cependant, dans la plupart des cas, vous pourrez facilement naviguer et localiser les options requises.

Configuration du compte en ligne Microsoft Dynamics CRM

Step 1 - Accédez à l'URL suivante -

https://www.microsoft.com/en-us/dynamics365/home

Si vous ne voyez plus les options de la version d'essai via ce lien à l'avenir, essayez simplement de rechercher «Essai gratuit de Microsoft Dynamics CRM» sur Google.

Step 2- Cliquez sur le bouton Essayer gratuitement. Cela lancera un processus d'enregistrement en 3 étapes, comme indiqué dans la capture d'écran suivante. À l'étape 1 de l'inscription en 3 étapes, remplissez les informations obligatoires telles que le nom, l'adresse e-mail et la langue.

Step 3- Cliquez sur le bouton Essayer gratuitement. Cela lancera un processus d'enregistrement en 3 étapes, comme indiqué dans la capture d'écran suivante. À l'étape 1 de l'inscription en 3 étapes, remplissez les informations obligatoires telles que le nom, l'adresse e-mail et la langue.

Step 4- À l'étape 3 de l'enregistrement en 3 étapes, Microsoft validera le numéro de téléphone mobile que vous avez spécifié. Pour cela, vous pouvez fournir votre numéro de mobile et cliquer sur M'envoyer un SMS. Il enverra ensuite un OTP à votre mobile à l'aide duquel vous pourrez continuer la configuration.

Step 5- Votre ID utilisateur Office 365 sera créé. Vous pouvez enregistrer ces informations d'ID utilisateur pour un accès ultérieur.

Après avoir configuré le compte, il ouvrira maintenant votre tableau de bord CRM qui ressemblera à ce qui suit.

Juste pour souligner à nouveau, les captures d'écran ci-dessus peuvent changer avec une version future, mais la configuration de l'environnement sera un processus assez simple.

Téléchargement du SDK CRM

Le kit de développement logiciel (SDK) de Microsoft Dynamics CRM contient des exemples de code importants, y compris le code côté serveur, le code côté client, les extensions, les plugins, les services Web, les flux de travail, le modèle de sécurité, etc. pour démarrer avec CRM. Que vous envisagiez de configurer un nouveau projet de plugin ou de mettre en place un projet de services Web pour CRM, le SDK fournit l'architecture de base et des exemples allant du niveau simple au niveau avancé pour vous aider à démarrer. Nous allons maintenant examiner les étapes de téléchargement et d'installation du SDK.

Step 1- Chaque version de Microsoft Dynamics CRM est fournie avec sa propre version du SDK. La meilleure façon d'obtenir la bonne version du SDK serait de rechercher sur Google votre version CRM respective. Par exemple, si votre version de CRM est 2015, essayez de rechercher «Microsoft Dynamics CRM 2015 SDK».

Step 2- Une fois téléchargé, exécutez la configuration exe. Cliquez sur Continuer.

Step 3- Il vous demandera de choisir l'emplacement où le SDK doit être extrait. Sélectionnez tout emplacement approprié où vous souhaitez conserver le SDK de référence.

Step 4- Ouvrez le dossier où vous avez extrait. Vous pouvez accéder à tout le contenu du SDK à partir d'ici.

Conclusion

Dans ce chapitre, nous avons configuré notre environnement en créant un compte CRM Online. Nous avons ensuite téléchargé le SDK CRM, qui sera utilisé dans les chapitres suivants de ce tutoriel. Assurez-vous de noter les informations d'identification avec lesquelles vous avez configuré le compte, car vous aurez besoin de ces informations lors de votre prochaine connexion.

L'ensemble de Microsoft Dynamics CRM est conçu autour des modules fonctionnels suivants.

  • Sales
  • Marketing
  • La gestion des services

Ces modules fonctionnels sont souvent appelés Work Areas.

Comprendre les modules fonctionnels CRM

L'ensemble de l'application CRM est divisé fonctionnellement pour différents types d'utilisateurs et d'équipes. Par conséquent, si une organisation utilise CRM pour gérer ses processus, les utilisateurs de l'équipe des ventes utiliseraient les fonctionnalités qui relèvent du module de vente, tandis que les utilisateurs de l'équipe de marketing utiliseraient des fonctionnalités qui relèvent du module de marketing.

Tous ces trois modules fonctionnels se réunissent pour piloter tout le cycle de vie de l'acquisition d'un nouveau client (Marketing), de leur vendre les services (Ventes) et de maintenir les clients existants (Gestion des services).

Pour mieux comprendre ce flux, pensez à une banque qui vend des cartes de crédit à ses clients. Le cycle de vie typique de la vente d'une carte de crédit à un client serait le suivant. À chaque étape de ce cycle de vie, vous verrez comment les modules Ventes, Marketing et Service remplissent leur rôle.

Sales & Marketing- Le responsable du bureau du centre d'appels de la banque reçoit les données des clients potentiels; souvent appelés Leads dans CRM. Ces prospects sont capturés dans le système CRM via des campagnes marketing, des campagnes de vente, des références, etc.

Sales- Le responsable du centre d'appels communique avec ces responsables soit par des appels téléphoniques / e-mails / etc. Si le client est intéressé par l'offre de carte de crédit, l'enregistrement de prospect sera converti en enregistrement d'opportunité (lead gagné).

Service- Une fois qu'un client devient une partie du système, la société l'aidera avec les paiements, la facturation, les remboursements, etc. Chaque fois que le client a des questions ou des préoccupations, il appellera le centre d'appels et signalera des incidents. Le cadre fera un suivi pour résoudre le cas dans le but de fournir un service de qualité au client. Ces tâches relèvent de la gestion des services CRM.

Navigation dans les zones de travail CRM

Step 1 - Ouvrez la page d'accueil CRM.

Step 2 - Par défaut, vous verrez la zone de travail Ventes comme sélectionnée.

Step 3- Pour modifier la zone de travail, cliquez sur l'option Afficher les zones de travail. Vous verrez les options de sélection des ventes, du service et du marketing.

Step 4- Cliquez sur Ventes. Cela vous montrera toutes les entités qui relèvent des ventes telles que les comptes, les contacts, les prospects, les opportunités, les concurrents, etc. Chacune de ces entités est catégorisée par son processus commercial tel que Mon travail, clients, ventes, garantie, etc.

Step 5 - De même, si vous cliquez sur la zone de travail Marketing, vous verrez toutes les entités liées aux fonctionnalités commerciales du Marketing.

Module de vente

Le module Ventes de CRM est conçu pour piloter l'ensemble du cycle de vie des ventes d'un nouveau client. Le module Ventes comprend les sous-modules suivants -

Leads- Représente une personne ou une organisation qui peut être un client potentiel de l'entreprise à l'avenir. C'est la première étape vers l'intégration d'un client potentiel dans le système.

Opportunities- Représente une vente potentielle au client. Une fois qu'un prospect manifeste son intérêt pour l'offre, il est converti en opportunité. Une opportunité sera gagnée ou perdue.

Accounts- Représente une entreprise avec laquelle l'organisation entretient des relations. Une fois qu'une opportunité est gagnée, elle est convertie en compte ou en contacts.

Contacts- Représente une personne ou tout individu avec lequel l'organisation entretient des relations. La plupart de ces contacts sont les clients des organisations (par exemple, tous les clients de carte de crédit d'une banque). Une fois qu'une opportunité est gagnée, elle est convertie en compte ou en contacts.

Competitors - Gère tous les concurrents du marché de l'organisation.

Products - Gère tous les produits proposés par l'organisation à ses clients (exemple, tous les plans de carte de crédit).

Quotes - Une offre formelle pour des produits ou services proposés à des prix spécifiques adressée à un client potentiel (Exemple, tarification annuelle d'un certain plan de carte de crédit envoyé au client).

Orders - Un devis accepté par le client se transforme en Commande (exemple, parmi tous les plans que l'organisation vous propose, vous pouvez opter pour un abonnement de 6 mois).

Invoices - Une commande facturée génère une facture.

Module marketing

Le module Marketing de CRM est conçu pour piloter l'ensemble du processus marketing d'une organisation pour ses clients existants et potentiels. Le module Marketing comprend les sous-modules suivants -

Marketing Lists- Fournit un moyen de regrouper vos contacts, comptes et prospects et d'interagir avec eux via l'envoi d'e-mails promotionnels, de détails d'événements, de newsletters et d'autres mises à jour pertinentes pour les clients cibles. Vous pouvez définir les critères pour créer vos listes marketing (exemple, contacts âgés de 25 à 35 ans).

Campaigns - Les campagnes sont conçues pour mesurer l'efficacité et atteindre un résultat spécifique, comme l'introduction d'un nouveau produit ou l'augmentation de la part de marché et peuvent inclure divers canaux de communication tels que les e-mails, les annonces dans les journaux, les annonces YouTube, etc.

Quick Campaigns - Une campagne rapide est similaire à une campagne, mais elle ne peut être liée qu'à un seul type d'activité.

Tous les modules Marketing ci-dessus fonctionnent en étroite coordination avec le module Ventes.

Module de gestion des services

Le module de gestion des services de CRM est conçu pour concentrer, gérer et suivre les opérations de service client d'une organisation, telles que la prise en charge des services basés sur les incidents, l'assistance aux clients à l'aide de la planification des services, etc.

Le module de gestion des services couvre les sous-modules suivants -

  • Cases (Incidents)- Prend en charge toutes les demandes, problèmes ou plaintes des clients à suivre via des incidents / cas. Un cas suit différentes étapes d'un processus de résolution de problème, puis est finalement résolu et fermé.

  • Knowledge Base - Maintient un référentiel maître pour toutes les questions et réponses courantes que le client pose fréquemment.

  • Contracts - Les contrats fonctionnent avec des cas indiquant tous les contrats actifs que le client a.

  • Resources/Resource Groups- Représente les personnes, les outils, les salles ou les équipements utilisés pour fournir un service. Ces ressources peuvent être utilisées pour résoudre un problème client spécifique.

  • Services - Représente tous les services que l'organisation offre aux clients.

  • Service Calendar - Utilisé pour planifier les horaires de travail et les horaires des utilisateurs qui travaillent dans l'organisation.

Gestion des activités

Tous les modules expliqués ci-dessus utilisent le module de gestion des activités de CRM. Une activité représente tout type d'interaction avec le client tel qu'un appel téléphonique, un e-mail, une lettre, etc. Ces activités peuvent être liées à l'une des entités expliquées précédemment telles que le compte, le contact, le prospect, le cas, etc. Par défaut, CRM fournit les types d'activités prêtes à l'emploi suivants -

  • Appel téléphonique
  • Email
  • Task
  • Appointment
  • Rendez-vous récurrent
  • Letter
  • Fax
  • Réponse de la campagne
  • Activités de la campagne
  • Activité de service
  • Activités personnalisées

Conclusion

Dans ce chapitre, nous avons découvert les trois principaux modules du CRM: ventes, marketing et gestion des services. Nous avons compris comment les zones de travail sont organisées dans CRM et comment fonctionne tout le cycle de vie d'une organisation CRM. Nous avons également examiné le module de gestion des activités de CRM qui permet de créer des activités par téléphone, e-mail, fax et autres types d'activités d'interaction client.

Maintenant que nous avons une vue d'ensemble fonctionnelle de tous les modules CRM, apprenons et comprenons les entités et les formulaires dans CRM.

Qu'est-ce qu'une entité?

Une entité est utilisée pour modéliser et gérer les données d'entreprise dans CRM. Les contacts, les requêtes, les comptes, les pistes, les opportunités, les activités, etc. sont toutes des entités qui détiennent des enregistrements de données. Conceptuellement, une entité CRM équivaut à une table de base de données. Par exemple, l'entité Contacts contiendrait des enregistrements de contact, l'entité Cas contiendrait des enregistrements Cas, et ainsi de suite.

Vous pouvez avoir à la fois: des entités prêtes à l'emploi (fournies par défaut avec le CRM) et des entités personnalisées (que vous pouvez créer avec la personnalisation). Par exemple, supposons que vous gériez les données des livres que vos clients ont lus. Pour cela, vous stockerez les données client à l'aide de l'entité Contacts prête à l'emploi, mais où stockeriez-vous les données des livres? Vous ne disposez d'aucune entité capable de stocker des données pour les livres. Dans de tels scénarios, vous allez créer une nouvelle entité personnalisée nommée Livres et la lier à l'entité Contacts existante.

Pour ce tutoriel, prenons un exemple de stockage des employeurs et des employés dans CRM. Prenant cet exemple en considération, prêt à l'emploi, CRM fournitContactentité dans laquelle vous pouvez idéalement stocker tous vos employés. Il fournit également unAccountentité dans laquelle vous pouvez stocker tous vos employeurs. Mais dans un souci d'apprentissage des entités, nous allons créer une nouvelle entité personnalisée appeléeEmployer (et ne pas utiliser l'entité de compte existante).

Créer une nouvelle entité

Step 1 - Cliquez sur le bouton du ruban supérieur suivi de Settingsoption. Cliquez surCustomizations option de la section Personnalisation (reportez-vous à la capture d'écran suivante).

Step 2 - Cliquez maintenant sur l'option Personnaliser le système.

Cela ouvrira la fenêtre Solution par défaut. Vous en apprendrez plus sur les solutions CRM dans les chapitres suivants, mais pour l'instant, vous utiliserez la solution CRM par défaut.

Step 3 - Développez l'option Entités dans le panneau de gauche.

Step 4 - Cliquez maintenant sur Nouveau → Entité.

Step 5- Dans le formulaire d'entité, entrez le nom d'affichage en tant qu'employeur et le nom pluriel en tant qu'employeurs. Dans la section «Domaines qui affichent cette entité», cochez Ventes, service et marketing. La vérification de ces options affichera l'entité nouvellement créée dans les onglets Ventes, Service et Marketing de CRM.

Step 6- Cliquez sur l'icône Enregistrer et fermer. Cela créera une nouvelle entité dans la base de données CRM dans les coulisses.

Step 7 - Dans la fenêtre parente de la solution par défaut, vous verrez l'entité Employeur nouvellement créée.

Step 8- Cliquez sur l'option Publier toutes les personnalisations dans la barre de ruban supérieure. Cela publiera (aka commit) tous les changements que nous avons faits jusqu'à présent. Vous pouvez fermer cette fenêtre en cliquant sur Enregistrer et fermer.

Créer des enregistrements

Le CRM consiste à gérer des données précieuses dans votre système. Dans cette section, nous allons apprendre à créer, ouvrir, lire et supprimer des enregistrements dans CRM. Nous allons continuer avec l'entité employeur que nous avons créée dans le dernier chapitre.

Step 1 - Accédez à la grille d'enregistrements d'entité Employeur via Afficher les zones de travail → Ventes → Extensions → Employeurs.

Step 2 - Cliquez sur l'icône Nouveau.

Cela ouvrira le formulaire de nouvel employeur par défaut. Vous pouvez voir qu'il n'y a qu'un seul champ modifiable Nom dans ce formulaire par défaut. Entrez Employeur 1 dans le champ Nom. Cliquez sur Enregistrer et fermer.

Step 3 - Dans le Active Employers vue, vous pouvez voir la fiche employeur nouvellement créée.

Accéder aux enregistrements

Pour accéder aux enregistrements déjà créés dans CRM, accédez à cette page d'entité. Dans notre cas, accédez à Afficher les zones de travail → Ventes → Extensions → Employeurs. Vous verrez la liste des enregistrements présents dans la grille. Cliquez sur n'importe quel enregistrement d'employeur pour y accéder.

Mise à jour des enregistrements

Une fois que vous avez ouvert un enregistrement, vous pouvez simplement modifier les détails du formulaire. Par défaut, CRM 2015 est livré avec une option d'enregistrement automatique qui enregistre toutes les modifications apportées au formulaire 30 secondes après la modification. Vous pouvez également cliquer sur Ctrl + S.

Si vous souhaitez désactiver la fonction d'enregistrement automatique, accédez à Paramètres → Administration → Paramètres système → Activer l'enregistrement automatique pour tous les formulaires et sélectionnez Non.

Supprimer des enregistrements

Step 1 - Sélectionnez un ou plusieurs enregistrements que vous souhaitez supprimer et cliquez sur le Delete bouton.

Step 2 - Confirmez la suppression des enregistrements en cliquant sur Delete.

Conclusion

Comme le montre l'exemple ci-dessus, le formulaire Employeur par défaut ne comportait qu'un seul champ. Cependant, dans des scénarios réels, vous aurez de nombreux champs personnalisés sur un formulaire. Par exemple, si vous regardez un exemple d'enregistrement de contact (qui est une entité CRM prête à l'emploi), il contiendra de nombreux champs pour stocker des informations de contact telles que le nom complet, l'e-mail, le téléphone, l'adresse, les cas, etc.

Dans les chapitres suivants, vous apprendrez comment modifier ce formulaire par défaut et y ajouter différents types de champs.

Avant d'apprendre comment ajouter des champs personnalisés aux formulaires CRM, examinons les types de champs de données pris en charge par CRM.

Types de champs

Prêt à l'emploi, CRM fournit 11 types de champs de données pouvant être placés sur des formulaires -

  • Une seule ligne de texte
  • Ensemble d'options (liste déroulante)
  • Deux options (bouton radio)
  • Image
  • Nombre entier
  • Nombre à virgule flottante
  • Nombre décimal
  • Currency
  • Plusieurs lignes de texte
  • Date et l'heure
  • Lookup

Le tableau suivant répertorie chacun avec une brève description.

Sr.Non Type de champ et description
1

Single Line of Text

Ce champ stocke jusqu'à 4 000 caractères de texte. Vous pouvez également spécifier le format comme l'un des suivants: e-mail, texte, zone de texte, URL, symbole boursier et téléphone. Vous pouvez définir la longueur maximale et le mode IME pour chacun d'entre eux.

2

Option Set (Dropdown)

Ce champ stocke un ensemble d'options ayant chacune une valeur numérique et une étiquette. En d'autres termes, il s'agit d'un champ déroulant dans CRM. Vous pouvez également définir des jeux d'options globaux qui peuvent être utilisés sur plusieurs formulaires.

3

Two Options (Radio Button)

Ce champ fournit deux options que l'utilisateur peut sélectionner (0 ou 1). En d'autres termes, il s'agit d'un champ de bouton radio.

4

Image

Lorsqu'une entité a un champ d'image, elle peut être configurée pour afficher l'image de l'enregistrement dans l'application.

5

Whole Number

Ce champ stocke des valeurs entières comprises entre -2 147 483 648 et 2 147 483 647. Il prend en charge les formats de spécification comme Aucun, Durée, Fuseau horaire et Langue. Vous pouvez également définir les valeurs minimum et maximum.

6

Floating Point Number

Ce champ stocke les nombres à virgule flottante jusqu'à 5 décimales de précision entre 0,00 et 1 000 000 000,00. Vous pouvez également définir les valeurs minimum et maximum.

sept

Decimal Number

Ce champ stocke jusqu'à 10 décimales avec des valeurs comprises entre -100 000 000 000,00 et 100 000 000 000,00.

8

Currency

Ce champ est utilisé pour stocker toutes les valeurs monétaires comprises entre 922 337 203 685 477,0000 et 922 337 203 685 477,0000. Vous pouvez également spécifier la précision comme décimale de tarification, précision de la devise ou toute valeur comprise entre 0 et 4.

9

Multiple Lines of Text

Ceci est une zone de texte défilante. Vous pouvez définir le nombre maximum de caractères pour ce champ.

dix

Date and Time

Ce champ est utilisé pour stocker les données relatives à la date dans CRM avec deux formats pris en charge: Date uniquement et Date et heure. Vous pouvez également spécifier le comportement comme Utilisateur local, Date uniquement et Indépendant du fuseau horaire.

11

Lookup

Vous pouvez créer un champ de recherche à l'aide d'une relation d'entité qui a déjà été créée, mais pas encore utilisée avec un autre champ de recherche. Si vous créez un champ de recherche dans un formulaire d'entité, la relation est automatiquement générée. Un champ de recherche est créé en tant que champ de relation.

Dans les deux derniers chapitres, vous avez étudié la création de nouvelles entités, la création de nouveaux enregistrements et les types de champs disponibles dans CRM. Dans ce chapitre, vous apprendrez à ajouter de nouveaux champs sur les formulaires CRM.

Sur les 11 types de champs de données étudiés dans le chapitre précédent, vous utiliserez trois types de champs sur votre employeur - Ensemble d'options (liste déroulante), plusieurs lignes de texte et DateHeure. Le champ Ensemble d'options serait utilisé pour stocker le type d'employeur, plusieurs lignes de texte seront utilisées pour stocker une brève description de l'employeur et le champ DateHeure serait utilisé pour stocker la date de création de l'entreprise.Note: Vous aviez déjà un champ Nom sur votre formulaire qui était une seule ligne de type texte.

Ajout de champs sur le formulaire

Step 1 - Cliquez sur le bouton du ruban supérieur suivi de Settingsoption. Cliquez surCustomizations option de la section Personnalisation (voir capture d'écran ci-dessous).

Step 2 - Cliquez maintenant sur l'option Personnaliser le système.

Cela ouvrira la fenêtre DefaultSolution. Vous en apprendrez plus sur les solutions CRM dans les chapitres suivants, mais pour l'instant, vous utiliserez la solution CRM par défaut.

Step 3 - Développez l'option Entités dans le panneau de gauche.

Step 4- Dans les entités développées, sélectionnez Employeur. Cela ouvrira les détails de l'entité dans la fenêtre de droite. Développez l'option Employeur dans le panneau de gauche et vous pourrez voir les formulaires, les vues, les graphiques, les champs et d'autres options.

Step 5- Cliquez sur Champs. Cela ouvrira une grille affichant tous les champs fournis par défaut lors de la création de cette entité.

Step 6- Cliquez sur le bouton Nouveau. Dans la nouvelle fenêtre qui s'ouvre, entrez les détails suivants -

Display Name - Type d'employeur

Name- Ce champ sera rempli automatiquement en fonction du nom d'affichage que vous sélectionnez. Cependant, si vous souhaitez le modifier, vous pouvez le faire.

Data Type- Ensemble d'options. Dès que vous sélectionnez le type de données comme jeu d'options, il vous montrera le panneau Options. Cliquez sur l'icône plus (+) pour créer un nouvel élément de jeu d'options avec le libellé par défaut comme élément et la valeur par défaut comme 100 000 000. Vous pouvez modifier le libellé de cet élément pour ajouter quatre options représentant les types d'employeurs: privé, gouvernemental, multinational et public.

Step 7- Cliquez sur Enregistrer et fermer dans le ruban supérieur. Vous avez créé avec succès le champ Type d'employeur.

Step 8 - Similaire à ce que vous venez de faire pour ajouter le champ Type d'employeur, ajoutez trois autres champs comme décrit et illustré dans les captures d'écran suivantes -

Number of Employees - Ce sera un champ Nombre entier.

Founded On - Ce sera un champ DateTime.

Employer Description - Ce sera un champ de plusieurs lignes de texte.

Step 9- Ajoutez maintenant ces nouveaux champs sur le formulaire employeur. Pour cela, cliquez sur Formulaires dans le volet de navigation de gauche sous Entité Employeur. Cela vous montrera deux formulaires avec des informations de nom. Par défaut, CRM crée deux formulaires - Principal et Mobile-Express. Cliquez sur le formulaire principal.

Step 10 - Vous pouvez voir les champs nouvellement ajoutés dans le panneau Explorateur de champs sur la droite.

Step 11 - Faites glisser et déposez ces champs dans l'onglet Général.

Step 12 - Cliquez sur Enregistrer, puis sur Publier.

Step 13- Vous pouvez maintenant créer des fiches d'employeur avec les champs de mise à jour. Accédez à Accueil CRM → Ventes → Employeurs → Nouveau. Le nouveau formulaire qui s'ouvrira cette fois contiendra tous les nouveaux champs que vous avez ajoutés dans ce chapitre. Vous pouvez remplir certains détails et cliquer sur Enregistrer et fermer.

Conclusion

Dans ce chapitre, nous avons appris à utiliser les formulaires CRM et à les personnaliser en y plaçant divers types de champs. Nous avons également appris à ajouter autant de champs que nous le souhaitons sur n'importe quel formulaire et à les organiser à l'aide de divers onglets et sections selon les besoins de l'entreprise.

Microsoft Dynamics CRM est un vaste produit qui a considérablement évolué au fil des ans. Le produit est livré avec de nombreuses fonctionnalités prêtes à l'emploi qui sont intégrées au système. Vous n'avez pas besoin d'écrire de code pour utiliser ces fonctionnalités. L'une des principales fonctionnalités prêtes à l'emploi est la capacité de recherche de CRM, en ce sens qu'il prend en charge des fonctionnalités avancées d'interrogation et de filtrage.

Recherche rapide

Par défaut, la vue en grille de chaque entité dans CRM prend en charge une fonctionnalité de recherche rapide à l'aide d'une barre de recherche en haut à droite. Voici une capture d'écran de la recherche rapide sur l'entité Contact.

Vous pouvez essayer d'entrer une chaîne de recherche comme «Robert» et elle renverra tous les enregistrements correspondants.

Vous pouvez préfixer le mot-clé de recherche avec * (astérisque) pour effectuer une recherche générique.

Note - Lors de l'utilisation de la version client Web de Microsoft Dynamics CRM, la recherche rapide recherche toujours tous les enregistrements actifs, quelle que soit la vue sélectionnée.

Vous pouvez personnaliser la recherche rapide (comme la personnalisation de toute autre vue) pour modifier les critères de filtre, configurer le tri, ajouter des colonnes de vue, ajouter des colonnes de recherche et modifier d'autres propriétés.

Recherche Avancée

La recherche avancée vous permet de rechercher des enregistrements de n'importe quelle entité dans CRM. C'est l'une des fonctionnalités les plus puissantes et les plus utiles qui sont prêtes à l'emploi avec CRM. L'icône Recherche avancée apparaît sur la barre de ruban supérieure de Microsoft Dynamics CRM, quel que soit l'écran sur lequel vous vous trouvez.

Cliquez sur l'icône Recherche avancée pour ouvrir la fenêtre Recherche avancée. Cette fenêtre vous permettra de sélectionner l'entité pour laquelle vous souhaitez rechercher des enregistrements, d'appliquer des critères de filtrage et de regroupement et d'enregistrer vos vues Recherche avancée en tant que vues personnelles.

Prenons un exemple. Supposons que vous souhaitiez rechercher tous les contacts dont le prénom contient Robert et qui sont divorcés. Pour cela -

Step 1- Sélectionnez Contacts dans la liste déroulante Rechercher. Cette liste déroulante contiendra toutes les entités présentes dans votre système.

Step 2- Entrez les critères de recherche comme indiqué dans la capture d'écran suivante. Vous pouvez ajouter autant de paramètres de requête de recherche que vous le souhaitez. Vous pouvez même regrouper ces critères en utilisant des paramètres de groupe. Par exemple, si vous souhaitez rechercher tous les contacts dont le prénom est Robert ou Mark, vous pouvez ajouter deux critères de recherche et les regrouper à l'aide de GroupOR.

Step 3- Cliquez sur le bouton Résultats. Il affichera les enregistrements correspondants dans un nouvel onglet.

Step 4- Vous pouvez également modifier les colonnes que vous souhaitez voir dans les résultats de la recherche en cliquant sur Modifier les colonnes. Par exemple, notre grille actuelle ne contient que deux colonnes - Nom complet et Téléphone professionnel. Cependant, si vous souhaitez ajouter une colonne supplémentaire d'ID d'e-mail à cette grille, vous pouvez le faire en utilisant cette option.

Enregistrement de la vue personnalisée

À ce stade, si vous souhaitez enregistrer ces critères de recherche, ainsi que les filtres et les colonnes modifiées, vous pouvez le faire en cliquant sur le bouton Enregistrer. Une fois enregistrée, vous pouvez utiliser cette vue enregistrée lorsque vous êtes sur cette page d'entité.

Par exemple, considérez qu'en tant que responsable client, vous servez deux types de clients: Normal et Premium. Par conséquent, vous pouvez créer un filtre avancé avec ces catégories respectives et les enregistrer en tant que contacts normaux qui m’ont été attribués et contacts Premium qui m’ont été attribués. Vous pouvez ensuite accéder rapidement à ces vues directement depuis la page d'entité Contact sans effectuer de recherche rapide ou de recherche avancée à chaque fois que vous utilisez le système.

Les ressources Web dans CRM sont les fichiers Web virtuels qui sont stockés dans la base de données CRM et utilisés pour implémenter les fonctionnalités de page Web dans CRM. Ces fichiers peuvent être de type HTML, JScript, Silverlight ou tout autre type pris en charge.

CRM étant un produit, est livré avec un ensemble complet de fonctionnalités et de fonctionnalités. Cependant, la plupart du temps, vous devrez étendre ces fonctionnalités existantes pour répondre à vos besoins personnalisés. L'extension de ces fonctionnalités se fait généralement de deux manières -

  • Extending on Client Side - Utilisation de ressources Web et de scripts de formulaires.

  • Extending on Server Side - Plugins, Workflows et Web Services (nous allons apprendre cette partie dans les prochains chapitres).

Utilisations des ressources Web

Comme mentionné ci-dessus, l'extension du CRM côté client est le point où les ressources Web entre en scène. Pour comprendre cela clairement, considérez les cas d'utilisation suivants -

  • Vous disposez d'un formulaire CRM contenant certains champs. CRM fournit des fonctionnalités prêtes à l'emploi pour les validations de base telles que les champs obligatoires, les longueurs de champs, etc. valider si l'adresse saisie existe réellement ou si le SSN saisi est correct?

  • CRM fournit des personnalisations d'interface utilisateur prêtes à l'emploi telles que la création de sections et d'onglets sur un formulaire, la réorganisation des champs, etc. Cependant, que se passe-t-il si le client souhaite créer une page personnalisée qui affiche toutes les informations du client provenant de son autre Système ERP?

  • CRM est livré avec une barre de ruban standard, qui contient tous les boutons et options. Que faire si vous souhaitez ajouter votre propre bouton de ruban?

  • Considérez que vous avez déjà un système ERP en place. Que faire si vous souhaitez ouvrir des écrans CRM à partir de ce système ERP?

  • Vous pouvez toujours appeler des services Web externes dans le code de votre plugin côté serveur. Cependant, que se passe-t-il si vous souhaitez appeler des services Web externes alors que vous êtes toujours côté client?

La réponse à tous ces «Et si» est les ressources Web. Chaque ressource Web est accessible via son URL unique. Vous pouvez télécharger un fichier de ressources Web ou pour les ressources basées sur du code (telles que HTML, Jscript, etc.), vous pouvez même les modifier directement dans CRM. Étant donné que les ressources Web sont stockées dans CRM, elles peuvent facilement être migrées d'un environnement à un autre ensemble, avec toutes les personnalisations CRM.

Types de ressources Web

Type de ressource Web Exemple d'application dans CRM
Page Web (HTML) Vous pouvez créer n'importe quelle page HTML personnalisée telle que des cartes, une page d'application personnalisée, etc. et la placer dans votre formulaire CRM.
Feuille de style (CSS) Tous les fichiers CSS qui seront utilisés avec les fichiers HTML.
Script (JScript) Toute logique côté client telle que les validations, la manipulation des valeurs de champ, etc.
Données (XML) Peut être utilisé pour stocker des paramètres statiques ou des données de configuration.
Image (PNG, JPG, GIF, ICO) Toutes les images utilisées dans l'application sur les boutons du ruban, les icônes, les formulaires, etc.
Silverlight (XAP) Toute application Silverlight personnalisée intégrée au CRM.
StyleSheet (XSL) Utilisé pour transformer les données XML.

Parmi tous ces types de ressources Web, nous étudierons les types les plus importants de ressources Web - Ressources Web HTML et Ressources Web JScript, dans les chapitres suivants.

Accès aux ressources Web pour toute entité

Toutes les ressources Web stockées dans la base de données sont accessibles dans CRM. Voici les étapes impliquées -

Step 1 - Allez dans Paramètres → Personnalisations → Personnaliser le système.

Step 2 - Dans la navigation de gauche, sélectionnez Web Resources. Actuellement, vous ne pourrez voir aucune ressource Web car nous n'avons encore rien créé.

Nous verrons comment créer des ressources Web dans les prochains chapitres.

Les ressources Web JScript sont probablement le type de ressources Web le plus important que vous utiliserez avec Microsoft Dynamics CRM.

Applications de JavaScript dans le CRM

Programmation d'événements de formulaire

La programmation d'événements de formulaire est utilisée pour gérer les comportements côté client, tels que ce qui se passe lorsqu'un utilisateur ouvre un formulaire, change certaines données, se déplace dans les onglets, etc. Pour réaliser de telles interactions côté client, vous allez écrire du code JavaScript et l'ajouter Ressource Web JScript dans CRM. Cependant, le code JavaScript que vous allez écrire doit utiliser le modèle Xrm.Page de Dynamic CRM et non le DOM JavaScript standard. L'utilisation du modèle Xrm.Page est la méthode de codage de Microsoft qui garantit que tout code que vous écrivez à l'aide de ce modèle sera compatible avec toutes les futures versions de CRM.

Ressources Web

En plus d'être utilisé dans la programmation d'événements de formulaire, JavaScript est utilisé dans d'autres applications de CRM telles que -

  • Ouvrez les formulaires, les vues et les boîtes de dialogue avec une URL unique.

  • Utilisation des points de terminaison OData et SOAP pour interagir avec les services Web.

  • Référencement du code JavaScript dans d'autres ressources Web (telles que les ressources Web HTML).

Dans de tels cas, vous écririez votre code JavaScript (à l'aide du modèle Xrm.Page) et l'ajouteriez en tant que ressource Web JScript dans CRM, qui peut ensuite être référencée n'importe où avec un URI unique.

Personnalisations du ruban

Enfin, l'une des autres utilisations courantes de JavaScript consiste à gérer les personnalisations de ruban telles que -

  • Afficher / masquer les boutons du ruban selon une certaine logique
  • Activer / désactiver les boutons du ruban en fonction d'une logique
  • Gérez ce qui se passe lorsque vous cliquez sur un certain bouton du ruban

Pour gérer de tels scénarios, vous allez écrire votre logique JavaScript (à l'aide du modèle Xrm.Page), puis l'ajouter en tant que ressource Web JScript. Cette ressource Web peut ensuite être référencée dans le XML du bouton du ruban et nous pouvons spécifier la méthode dans laquelle le fichier JScript à appeler pour vérifier si un bouton du ruban doit être affiché / masqué ou activé / désactivé ou gérer les événements de clic.

Modèle objet Xrm.Page

Voici la hiérarchie de l'objet Xrm.Page indiquant les espaces de noms disponibles, les objets et leurs collections. Vous utiliserez ces propriétés lors de l'écriture du code JScript.

Espaces de noms

Sr.Non Objet et description
1

Context

Fournit des méthodes pour récupérer des informations spécifiques au contexte telles que les détails de l'organisation, les détails de l'utilisateur connecté ou les paramètres qui ont été transmis au formulaire dans une chaîne de requête.

2

Data

Donne accès aux données d'entité et aux méthodes pour gérer les données dans le formulaire ainsi que dans le contrôle de flux de processus métier.

3

UI

Contient des méthodes pour récupérer des informations sur l'interface utilisateur, en plus des collections pour plusieurs sous-composants du formulaire.

Objets

Sr.Non Objet et description
1

Entity

Fournit une méthode à -

  • Récupérer les informations d'enregistrement
  • Enregistrer la méthode
  • Attributs de collection
2

Process

Méthodes pour récupérer les propriétés du flux de processus métier.

3

Navigation

Donne accès aux éléments de navigation à l'aide de la collection d'éléments.

4

FormSelector

Utilise la collection Items pour accéder aux formulaires disponibles à l'utilisateur. Utilise également la méthode de navigation pour fermer et ouvrir des formulaires.

5

Stages

Chaque processus possède une collection d'étapes accessibles à l'aide de la méthode de processus getStages.

6

Steps

Chaque étape comprend diverses étapes accessibles à l'aide de la méthode getSteps de l'étape.

Les collections

Sr.Non Collections et description
1

Attributes

Donne accès aux attributs d'entité disponibles sur le formulaire.

2

Controls

ui.controls - Donne accès à chaque contrôle présent sur le formulaire.

attribute.controls - Donne accès à tous les contrôles dans un attribut.

section.controls - Donne accès à tous les contrôles dans une section.

3

Items

Donne accès à tous les éléments de navigation d'un formulaire.

4

Tabs

Donne accès à tous les onglets d'un formulaire.

5

Sections

Donne accès à toutes les sections d'un formulaire.

Événements pris en charge dans la programmation de formulaires

La programmation de formulaire utilisant le modèle Xrm.Page vous permet de gérer les événements de formulaire suivants:

  • onLoad
  • onSave
  • onChange
  • TabStateChange
  • OnReadyStateComplete
  • PreSearch
  • Événements de contrôle de flux de processus métier

Exemple de programmation de formulaire

Dans cet exemple, nous mettrons quelques validations sur le formulaire de contact en fonction du PreferredMethodofCommunication que l'utilisateur sélectionne. Par conséquent, si l'utilisateur sélectionne sa méthode préférée comme Email, alors le champ Email devrait devenir obligatoire et de même pour les autres champs Téléphone et Fax.

Step 1 - Créez un fichier JavaScript nommé contacts.js et copiez le code suivant.

function validatePreferredMethodOfCommunication() { 

   //get the value of Preffered Method of Communication code 
   var prefferedContactMethodCode = 
      Xrm.Page.getAttribute('preferredcontactmetho dcode').getValue();  
   
   //if Preferred Method = Any, make all fields as non-mandatory 
   
   //else if Preferred Method = Phone, make Mobile Phone field mandatory 
   //and all other fields as non-mandatory 
   
   //else if Preferred Method = Fax, make Fax field mandatory 
   //and all other fields as non-mandatory 
   
   if(prefferedContactMethodCode == 1) { 
      clearAllMandatoryFields(); 
   }  
   if(prefferedContactMethodCode == 2) { 
      clearAllMandatoryFields(); 
      Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('required'); 
   } else if(prefferedContactMethodCode == 3) { 
      clearAllMandatoryFields(); 
      Xrm.Page.getAttribute('mobilephone').setRequiredLevel('required'); 
   } else if(prefferedContactMethodCode == 4) { 
      clearAllMandatoryFields(); 
      Xrm.Page.getAttribute('fax').setRequiredLevel('required'); 
   } 
} 
function clearAllMandatoryFields() { 
   
   //clear all mandatory fields 
   Xrm.Page.getAttribute('emailaddress1').setRequiredLevel('none'); 
   Xrm.Page.getAttribute('mobilephone').setRequiredLevel('none'); 
   Xrm.Page.getAttribute('fax').setRequiredLevel('none'); 
}

Step 2 - Ouvrez le formulaire d'entité Contact en accédant à Paramètres → Personnalisations → Personnaliser le système → Entité Contact → Formulaires → Formulaire principal.

Step 3 - Cliquez sur Propriétés du formulaire.

Step 4 - Dans la fenêtre Propriétés du formulaire, cliquez sur Ajouter.

Step 5 - Dans la fenêtre suivante Rechercher un enregistrement de ressource Web, cliquez sur Nouveau car nous créons une nouvelle ressource Web.

Step 6 - Dans la fenêtre Nouvelle ressource Web, entrez les détails suivants -

Name - new_contacts.js

Display Name - contacts.js

Type - JScript

Upload File - Téléchargez le fichier JavaScript que vous avez créé à partir de votre machine locale.

Step 7- Cliquez sur Enregistrer puis sur Publier. Après cela, fermez la fenêtre et vous serez de retour à la fenêtre Rechercher un enregistrement de ressource Web.

Step 8- Ici, vous pouvez maintenant voir la ressource Web new_contacts.js. Sélectionnez-le et cliquez sur Ajouter. Vous avez maintenant ajouté avec succès une nouvelle ressource Web et vous l'avez enregistrée sur le formulaire.

Step 9- Nous allons maintenant ajouter un gestionnaire d'événements sur le changement du champ Méthode de communication préférée. Ce gestionnaire d'événements appellera la fonction JavaScript que nous venons d'écrire. Sélectionnez les options suivantes dans la section Gestionnaire d'événements.

Control - Méthode de communication préférée

Event - OnChange

Ensuite, cliquez sur le Add bouton, comme indiqué dans la capture d'écran suivante.

Step 10 - Dans la fenêtre suivante des propriétés du gestionnaire, nous spécifierons la méthode à appeler lorsque l'événement de modification se produira.

Sélectionnez Library comme new_contacts.js et Function comme validatePreferredMethodOfCommunication. Cliquez sur OK.

Step 11- Vous pourrez maintenant voir la bibliothèque de formulaires (ressource Web) et les événements qui y sont enregistrés. Cliquez sur OK.

Step 12 - Cliquez sur Enregistrer puis sur Publier.

Step 13- Ouvrez maintenant n'importe quel formulaire de contact et définissez la méthode de communication préférée comme téléphone. Cela rendra le champ Téléphone mobile obligatoire. Si vous essayez maintenant d'enregistrer ce contact sans entrer de numéro de téléphone portable, une erreur indiquant «Vous devez fournir une valeur pour le téléphone mobile» s'affiche.

Conclusion

Dans ce chapitre, nous avons commencé par comprendre les trois applications importantes de JavaScript dans CRM. Plus tard, nous avons exploré le modèle Xrm.Page et l'avons utilisé pour apprendre la programmation de formulaires avec un exemple.

Dans ce chapitre, nous découvrirons les différentes ressources Web de Microsoft Dynamics CRM.

Applications des ressources Web HTML

Une ressource Web HTML dans CRM peut contenir tout contenu HTML qui peut être rendu sur un navigateur. Considérez les scénarios suivants dans lesquels vous souhaitez utiliser des ressources Web HTML -

  • Vous avez une page HTML statique que vous souhaitez afficher dans l'écran CRM.

  • Vous disposez d'une page HTML personnalisée qui attend certains paramètres d'entrée et est rendue en fonction de ces paramètres d'entrée. Par exemple, considérez que vous récupérez des informations à partir d'une API externe ou d'un service Web et que vous souhaitez les afficher dans CRM.

  • Vous souhaitez afficher certaines informations avec une apparence et une convivialité différentes de celles de l'interface utilisateur CRM standard.

Vous avez une page ASPX personnalisée (en dehors de l'application CRM) qui est rendue en fonction des paramètres d'entrée. Étant donné que CRM ne vous permet pas d'avoir des ressources Web ASPX, vous pouvez créer une ressource Web HTML et appeler la page ASPX externe à partir de cette page HTML.

Exemple de ressource Web HTML

Nous allons créer une ressource Web HTML très simple qui affichera un texte personnalisé «Bienvenue dans TutorialsPoint». Notez qu'il s'agit d'un exemple très simple de ressource Web HTML. En pratique, les ressources Web HTML seraient plus complexes que cela.

Step 1 - Créez un fichier HTML nommé sampleHTMLWebResource.html et copiez le code suivant.

<!DOCTYPE html> 
<htmllang = "en"xmlns = "http://www.w3.org/1999/xhtml"> 
   <head> 
      <metacharset = "utf-8"/> 
      <title>Welcome to Tutorials Point</title> 
   </head> 
   
   <body> 
      <h1>Welcome to Tutorials Point. This is an example of HTML Web Resource.</h1> 
   </body> 
</html>

Step 2- Tout d'abord, nous allons créer une nouvelle ressource Web, puis la référencer dans le formulaire de contact. Ouvrez DefaultSolution et accédez à l'onglet WebResources dans le panneau de gauche. Cliquez sur Nouveau.

Step 3- Cela ouvrira une fenêtre Nouvelle ressource Web. Entrez les détails comme indiqué dans la capture d'écran suivante et parcourez le fichier HTML que nous avons créé à l'étape 1. Cliquez sur Enregistrer et publier. Ferme la fenêtre.

Step 4 - Vous verrez la nouvelle ressource Web ajoutée à la grille Ressources Web.

Step 5- Ouvrez maintenant le formulaire de contact via Paramètres → Personnalisations → Personnaliser le système → Contact → Formulaire principal. Sélectionnez la section Informations de contact et passez à l'onglet Insérer dans la barre de ruban supérieure. Cliquez sur Ressource Web.

Step 6- Cela ouvrira une fenêtre Ajouter une ressource Web. Cliquez sur la recherche de ressources Web dans cette fenêtre, ce qui ouvrira la fenêtre d'enregistrement de recherche de ressources Web. Recherchez la ressource Web que vous venez de créer (new_sampleHTMLWebResource), sélectionnez-la dans la grille et cliquez sur Ajouter.

Step 7- En revenant à Ajouter une ressource Web, entrez le nom et l'étiquette comme indiqué dans la capture d'écran suivante et cliquez sur OK. Ferme la fenêtre.

Vous verrez la ressource Web HTML ajoutée sous le champ Adresse.

Step 8 - Pour tester cela, ouvrez n'importe quel enregistrement de contact et vous verrez le contenu de la ressource Web HTML qui y est affiché.

Limitations des ressources Web HTML

  • Il n'existe aucun moyen pris en charge d'utiliser le code côté serveur dans les ressources Web HTML.

  • Les ressources Web HTML ne peuvent accepter qu'un nombre limité de paramètres. Pour passer plus d'une valeur dans le paramètre data, vous devrez encoder les paramètres incluant la logique de décodage à l'autre extrémité.

Les flux de travail dans CRM vous permettent d'automatiser des processus métier simples et complexes dans CRM. Vous pouvez créer des flux de travail à l'aide des fonctionnalités CRM prêtes à l'emploi ou écrire des flux de travail personnalisés avec du code .NET pour implémenter des flux de travail complexes. Les processus de workflow s'exécutent en arrière-plan ou en temps réel et peuvent éventuellement nécessiter une entrée utilisateur.

Les workflows peuvent être déclenchés en fonction de conditions spécifiques ou peuvent même être démarrés manuellement par les utilisateurs. En interne, les flux de travail CRM sont implémentés à l'aide de Windows Workflow Foundation. Dans ce chapitre, nous allons apprendre à configurer les workflows.

La configuration d'un flux de travail comprend les parties principales suivantes (dans l'ordre) -

  • Configurer l'entité sur laquelle le workflow s'exécutera
  • Configurer si le flux de travail s'exécutera de manière synchrone ou asynchrone
  • Configurer le message (événement) sur lequel le workflow s'exécutera
  • Configurer l'étendue dans laquelle le workflow s'exécutera
  • Configurer les étapes et les étapes (actions) du workflow

Flux de travail synchrone / asynchrone

Lorsque vous créez un flux de travail, vous verrez l'option Exécuter ce flux de travail en arrière-plan (recommandé) qui détermine si le flux de travail s'exécutera en temps réel (de manière synchrone) ou en arrière-plan (de manière asynchrone).

En règle générale, l'approche recommandée consiste à exécuter les workflows en arrière-plan car ils utilisent les ressources système au fur et à mesure de leur disponibilité. Cependant, vous pouvez toujours revenir d'un flux de travail en temps réel à un flux de travail en arrière-plan et vice versa.

Messages de flux de travail

Les workflows peuvent être enregistrés sur des événements spécifiques comme suit -

  • Lorsqu'un enregistrement est créé
  • Lorsqu'un statut d'enregistrement change
  • Lorsqu'un enregistrement est attribué
  • Lorsqu'une valeur de champ d'enregistrement change
  • Lorsqu'un enregistrement est supprimé

Portée du workflow

Les flux de travail vous permettent de définir la portée dans laquelle le flux de travail s'exécutera. Voici les étendues de flux de travail prises en charge -

User Le workflow s'exécutera uniquement sur les enregistrements appartenant au même utilisateur que l'utilisateur du workflow.
Business Unit Le flux de travail s'exécutera sur les enregistrements appartenant aux utilisateurs de l'unité commerciale de la même manière que l'utilisateur du flux de travail.
Parent Child Business Units Le flux de travail s'exécutera sur les enregistrements appartenant aux utilisateurs de l'unité commerciale de la même manière que l'utilisateur du flux de travail ainsi que sur toutes les unités commerciales enfants.
Organization Le workflow s'exécutera sur les enregistrements appartenant à n'importe quel utilisateur dans CRM.

Étapes du flux de travail

Les flux de travail dans CRM sont une combinaison de séries d'étapes que le flux de travail suivra. Vous pouvez même diviser ces étapes en étapes logiques. Les étapes suivantes sont prises en charge par les flux de travail CRM -

Conditional Steps
Check Condition Spécifie une instruction logique «si (condition) - alors».
Conditional Branch Spécifie une instruction logique «else - if - then». Cela ne peut être utilisé qu'avec une condition de contrôle.
Default Action Spécifie une instruction «else» logique. Cela ne peut être utilisé qu'avec une condition de contrôle.
Wait Steps
Wait Condition Attend qu'une condition spécifique soit remplie. Non applicable pour les workflows en temps réel.
Parallel Wait Branch Spécifie une condition d'attente alternative avec un ensemble d'étapes supplémentaires pouvant être effectuées une fois que les critères initiaux sont satisfaits.
Action Steps
Create Record Crée un enregistrement de l'entité spécifiée avec les valeurs par défaut spécifiées.
Update Record Met à jour l'enregistrement sélectionné avec des valeurs spécifiées ou dynamiques.
Assign Record Attribue l'enregistrement sélectionné à un utilisateur ou à une équipe.
Send Email Envoie un e-mail.
Perform Action Spécifie les étapes (et actions) du flux de travail personnalisé. Ces étapes personnalisées doivent être développées par un développeur CRM.
Change Status Modifie le statut de l'enregistrement sélectionné.
Stop Workflow Arrête le workflow en cours

Exemple de workflow

Dans cet exemple, nous allons créer un flux de travail simple qui s'exécute en arrière-plan pour attribuer tout enregistrement de contact nouvellement créé à un utilisateur spécifique, puis envoyer un e-mail de bienvenue au client.

Step 1 - Allez dans Paramètres → Processus.

Step 2 - Cliquez sur Nouveau.

Step 3 - Dans la fenêtre CreateProcess, entrez les détails suivants -

Process Name - Nouveau flux de travail client (cela peut être n'importe quel nom que vous voulez)

Category - Flux de travail

Entity - Contact (Ce sera l'entité sur laquelle vous créez le workflow. Dans notre cas, c'est Contact)

Run this workflow in the background (recommended)- Cochez cette option lorsque nous créons un flux de travail asynchrone en arrière-plan. Enfin, cliquez sur OK.

Step 4 - Dans la fenêtre Nouveau processus, entrez les détails suivants -

Activate As - Processus

Scope - Utilisateur

Start when - L'enregistrement est créé

Cliquez sur Add Step → Attribuer un enregistrement.

Step 5- Vous verrez une nouvelle étape ajoutée au flux de travail. Dans cette étape, nous spécifierons l'utilisateur auquel tous les contacts créés doivent être attribués. Entrez le nom de l'étape commeAssign Record to Team. L'option Attribuer sera définie par défaut comme l'entité sur laquelle nous créons le workflow (Contact dans notre cas). Cliquez sur l'icône de recherche.

Step 6- Dans la fenêtre de recherche, sélectionnez l'utilisateur de votre choix. Vous pouvez même sélectionner une équipe spécifique à laquelle vous souhaitez attribuer les enregistrements. Cliquez sur Ajouter.

Step 7- Ajoutez une autre étape en cliquant sur Ajouter une étape → Envoyer un e-mail. Dans cette étape, nous allons configurer l'envoi d'e-mail au client.

Step 8- Une nouvelle étape sera ajoutée. Entrez son nom comme Envoyer un e-mail au client. Cliquez sur Définir les propriétés.

Step 9 - Dans la fenêtre suivante pour configurer l'email, effectuez les opérations suivantes -

From- Cliquez sur le champ De. Dans le panneau de droite, sélectionnez OwningUser et User. Cliquez sur Ajouter → OK.

To- Cliquez sur le champ À. Dans le panneau de droite, sélectionnez Contact et contact. Cliquez sur Ajouter → OK.

Subject - Entrez un sujet pertinent.

Body - Entrez un contenu Body pertinent.

Step 10 - Cliquez sur Enregistrer puis sur Activer.

Step 11 - Dans la fenêtre contextuelle Process Activate Confirmation qui suit, cliquez sur Activer.

Step 12- Allez dans l'onglet Contacts et créez un nouveau contact. Dès que vous créez un nouveau contact en sauvegardant l'enregistrement, vous verrez le champ Propriétaire défini sur l'utilisateur, que vous avez configuré dans le workflow. De plus, si vous cliquez sur l'onglet Activités, vous verrez une activité de messagerie en cours de création pour ce contact. Cela confirme que le workflow s'est exécuté avec succès.

Flux de travail vs plug-in

Les workflows et les plugins peuvent tous deux être utilisés pour étendre et automatiser les fonctionnalités CRM. Dans de nombreux scénarios, les deux approches peuvent être utilisées de manière interchangeable à la place de l'autre. Par exemple, si vous avez une simple exigence d'envoyer un e-mail à vos clients, vous pouvez le faire via un plugin ou un workflow.

Alors, comment choisir entre créer un workflow ou un plugin? La liste suivante tente d'expliquer la même chose -

  • Bien que les plugins et les workflows puissent tous deux être utilisés pour exécuter une logique synchrone et asynchrone, les plugins sont généralement préférés pour la logique synchrone, tandis que les workflows pour la logique asynchrone.

  • En règle générale, pour mettre en œuvre une logique métier complexe, les plugins sont préférés aux workflows. Les workflows sont préférés lorsque vous souhaitez obtenir des fonctionnalités relativement plus simples (telles que l'envoi d'e-mails, l'attribution d'utilisateurs, etc.)

  • Les plugins doivent être développés avec un codage, tandis que les flux de travail peuvent être configurés directement par les utilisateurs professionnels sans aucune connaissance des flux de travail.

  • Les workflows peuvent s'exécuter à la demande. Par conséquent, s'il existe des exigences pour lesquelles l'utilisateur souhaite exécuter une logique manuellement, les flux de travail seraient un meilleur choix.

  • Du point de vue des performances, les plugins synchrones offrent de meilleures performances (et un meilleur débit) par rapport aux workflows en temps réel dans les scénarios où la fréquence de demande est plus élevée.

Conclusion

Ce chapitre nous a présenté l'une des fonctionnalités très importantes de CRM - Workflows. Nous avons d'abord compris les flux de travail de synchronisation / asynchrone, les messages, la portée, les étapes et enfin examiné un exemple en direct de création et d'exécution d'un flux de travail. Enfin, nous avons vu les différences entre un workflow et un plugin.

Un plug-in est une logique métier personnalisée qui s'intègre à Microsoft Dynamics CRM pour modifier ou étendre le comportement standard de la plateforme. Les plug-ins agissent comme des gestionnaires d'événements et sont enregistrés pour s'exécuter sur un événement particulier dans CRM. Les plugins sont écrits en C # ou VB et peuvent s'exécuter en mode synchrone ou asynchrone.

Certains scénarios où vous écririez un plugin sont -

  • Vous souhaitez exécuter une logique métier telle que la mise à jour de certains champs d'un enregistrement ou la mise à jour des enregistrements associés, etc. lorsque vous créez ou mettez à jour un enregistrement CRM.

  • Vous souhaitez appeler un service Web externe sur certains événements tels que l'enregistrement ou la mise à jour d'un enregistrement.

  • Vous souhaitez calculer dynamiquement les valeurs de champ lorsqu'un enregistrement est ouvert.

  • Vous souhaitez automatiser des processus tels que l'envoi d'e-mails à vos clients sur certains événements dans CRM.

Cadre d'événement

L'infrastructure de traitement des événements dans CRM traite les demandes de plug-in synchrones et asynchrones en les transmettant au pipeline d'exécution d'événements. Chaque fois qu'un événement déclenche une logique de plug-in, un message est envoyé au service Web de l'organisation CRM où il peut être lu ou modifié par d'autres plugins ou par toute opération de base de la plate-forme.

Étapes du pipeline de plug-in

L'ensemble du pipeline de plugins est divisé en plusieurs étapes sur lesquelles vous pouvez enregistrer votre logique métier personnalisée. L'étape de pipeline spécifiée indique à quelle étape du cycle d'exécution du plugin s'exécute le code de votre plugin. Parmi toutes les étapes de pipeline spécifiées dans le tableau suivant, vous ne pouvez enregistrer vos plug-ins personnalisés que sur les pré et post-événements. Vous ne pouvez pas enregistrer de plugins sur Platform Core Main Operations.

un événement Nom de scène La description
Pré-événement Pré-validation Étape dans le pipeline pour les plug-ins à exécuter avant l'opération principale du système. Les plug-ins enregistrés à cette étape peuvent s'exécuter en dehors de la transaction de base de données.
Pré-événement Pré-opération Étape dans le pipeline pour les plug-ins qui doivent être exécutés avant l'opération principale du système. Les plugins enregistrés à cette étape sont exécutés dans la transaction de base de données.
Fonctionnement de base de la plate-forme Opération principale Intransaction, opération principale du système, telle que la création, la mise à jour, la suppression, etc. Aucun plug-in personnalisé ne peut être enregistré à ce stade. Pour usage interne uniquement.
Après l'occassion Post-opération Étape dans le pipeline pour les plug-ins qui doivent être exécutés après l'opération principale. Les plug-ins enregistrés à cette étape sont exécutés dans la transaction de base de données.

Chaque fois que l'application CRM appelle un événement (comme la sauvegarde ou la mise à jour d'un enregistrement), la séquence d'actions suivante a lieu:

  • L'événement déclenche un appel de service Web et l'exécution passe par les étapes du pipeline d'événements (pré-événement, opérations principales de la plateforme, post-événement).

  • Les informations sont conditionnées en interne sous forme de message OrganizationRequest et finalement envoyées aux méthodes de service Web CRM internes et aux opérations de base de la plateforme.

  • Le message OrganizationRequest est d'abord reçu par les plugins de pré-événement, qui peuvent modifier les informations avant de les transmettre aux opérations principales de la plateforme. Après les opérations principales de la plate-forme, le message est emballé en tant que OrganizationResponse et transmis aux plugins post-opération. Les plugins postopérations peuvent éventuellement modifier ces informations avant de les transmettre au plugin async.

  • Les plugins reçoivent ces informations sous la forme d'un objet de contexte qui est passé à la méthode Execute, après quoi le traitement ultérieur se produit.

  • Une fois que tout le traitement du plugin est terminé, l'exécution est renvoyée à l'application qui a déclenché l'événement.

Messages du plugin

Les messages sont les événements sur lesquels le plugin (ou la logique métier) est enregistré. Par exemple, vous pouvez enregistrer un plugin sur l'entité Créer un message de contact. Cela déclencherait la logique métier chaque fois qu'un nouvel enregistrement de contact est créé.

Pour les entités personnalisées, voici les messages pris en charge selon que l'entité appartient à l'utilisateur ou à l'organisation.

Nom du message Type de propriété
Attribuer Entités appartenant à l'utilisateur uniquement
Créer Entités appartenant à l'utilisateur et à l'organisation
Effacer Entités appartenant à l'utilisateur et à l'organisation
GrantAccess Entités appartenant à l'utilisateur uniquement
ModifierAccès Entités appartenant à l'utilisateur uniquement
Récupérer Entités appartenant à l'utilisateur et à l'organisation
RécupérerMultiple Entités appartenant à l'utilisateur et à l'organisation
RécupérerPrincipalAccess Entités appartenant à l'utilisateur uniquement
RécupérerSharedPrincipalsAndAccess Entités appartenant à l'utilisateur uniquement
Accès révoqué Entités appartenant à l'utilisateur uniquement
SetState Entités appartenant à l'utilisateur et à l'organisation
SetStateDynamicEntity Entités appartenant à l'utilisateur et à l'organisation
Mettre à jour Entités appartenant à l'utilisateur et à l'organisation

Pour les entités prêtes à l'emploi par défaut, il existe plus de 100 messages pris en charge. Certains de ces messages sont applicables à toutes les entités tandis que certains d'entre eux sont spécifiques à certaines entités. Vous pouvez trouver la liste complète des messages pris en charge dans un fichier Excel à l'intérieur du SDK:SDK\Message-entity support for plug-ins.xlsx

Plugin d'écriture

Dans cette section, nous allons apprendre les bases de l'écriture d'un plugin. Nous allons créer un exemple de plugin qui crée une activité Tâche à suivre avec le client chaque fois qu'un nouveau client est ajouté au système, c'est-à-dire chaque fois qu'un nouveau Contactrecord est créé dans CRM.

Tout d'abord, vous devez inclure les références à Microsoft.Xrm.Sdkespace de noms. Le SDK CRM contient tous les assemblys SDK requis. En supposant que vous avez déjà téléchargé et installé le SDK dans le chapitre 2, ouvrez Visual Studio. Créez un nouveau projet de type Bibliothèque de classes. Vous pouvez nommer le projet SamplePlugins et cliquer sur OK.

Ajouter la référence de Microsoft.Xrm.Sdkmontage à votre projet. L'assemblée est présente dansSDK/Bin.

Maintenant, créez une classe nommée PostCreateContact.cs et étendre la classe de IPlugin. Jusqu'à présent, votre code ressemblera à ce qui suit.

Vous devrez également ajouter une référence à System.Runtime.Serialization. Une fois que vous avez ajouté les références requises, copiez le code suivant dans lePostCreateContact classe.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xrm.Sdk;

namespace SamplePlugins {
   public class PostCreateContact:IPlugin {
      /// A plug-in that creates a follow-up task activity when a new account is created.
      /// Register this plug-in on the Create message, account entity,
      /// and asynchronous mode.

      public void Execute(IServiceProviderserviceProvider) {
         // Obtain the execution context from the service provider.
         IPluginExecutionContext context =(IPluginExecutionContext)
            serviceProvider.GetService(typeof(IPluginExecutionContext));

         // The InputParameters collection contains all the data
            passed in the message request.

         if(context.InputParameters.Contains("Target")&&
            context.InputParameters["Target"]isEntity) {
            
            // Obtain the target entity from the input parameters.
            Entity entity = (Entity)context.InputParameters["Target"];
            try {
               
               // Create a task activity to follow up with the account customer in 7 days
               Entity followup = new Entity("task");
               followup["subject"] = "Send e-mail to the new customer.";
               followup["description"] =
                  "Follow up with the customer. Check if there are any new issues
                  that need resolution.";
               
               followup["scheduledstart"] = DateTime.Now;
               followup["scheduledend"] = DateTime.Now.AddDays(2);
               followup["category"] = context.PrimaryEntityName;

               // Refer to the contact in the task activity.
               if(context.OutputParameters.Contains("id")) {
                  Guid regardingobjectid = new Guid(context.OutputParameter
                     s["id"].ToString());
                  string regardingobjectidType = "contact";
                  followup["regardingobjectid"] = 
                     new EntityReference(rega rdingobjectidType,regardingobjectid);
               }
               
               // Obtain the organization service reference.
               IOrganizationServiceFactory serviceFactory =
                  (IOrganizationSer viceFactory)serviceProvider.GetService
                  (typeof(IOrganizationServiceFactory));
               IOrganizationService service = 
                  serviceFactory.CreateOrganizationService(context.UserId);

               // Create the followup activity
               service.Create(followup);
            } catch(Exception ex) {
               throw new InvalidPluginExecutionException(ex.Message);
            }
         }
      }
   }
}

Voici une explication étape par étape de ce que fait ce code -

Step 1- Implémente la méthode Execute en prenant l'objet IServiceProvider comme paramètre. Le fournisseur de services contient des références à de nombreux objets utiles que vous allez utiliser dans le plugin.

Step 2 - Obtient l'objet IPluginExecutionContext à l'aide de la méthode GetService de IServiceProvider.

Step 3- Obtient l'objet de l'entité cible à partir de la collection InputParameters de l'objet de contexte. Cet objet de classe Entity fait référence à l'enregistrement d'entité Contact sur lequel notre plugin serait enregistré.

Step 4- Il crée ensuite un objet de l'entité Tâche et définit le sujet, la description, les dates, la catégorie et l'idobjectid appropriés. Le concernantobjectid indique pour quel enregistrement de contact cet enregistrement d'activité est en cours de création. Vous pouvez voir que le code obtient l'ID de l'enregistrement de contact parent à l'aide de context.OutputParameters et l'associe à l'enregistrement d'entité de tâche que vous avez créé.

Step 5 - Crée l'objet de IOrganizationServiceFactory à l'aide de l'objet IServiceProvider.

Step 6 - Crée l'objet de IOrganizationService à l'aide de l'objet IOrganizationServiceFactory.

Step 7- Enfin, en utilisant la méthode Create de cet objet de service. Il crée l'activité de suivi qui est enregistrée dans CRM.

Signature de l'assemblage du plug-in

Cette section n'est applicable que si vous enregistrez votre assemblage de plugins pour la première fois. Vous devez vous connecter à l'assembly avec une clé pour pouvoir déployer le plugin. Cliquez avec le bouton droit sur la solution et cliquez sur Propriétés.

Sélectionnez l'onglet Signature dans les options de gauche et cochez l'option «Signer l'assemblage». Ensuite, sélectionnez Nouveau dans Choisir un fichier de clé de nom fort.

Entrez le nom du fichier de clé comme sampleplugins (cela peut être n'importe quel autre nom que vous voulez). Décochez l'option Protéger mon fichier de clé avec un mot de passe et cliquez sur OK. Cliquez sur Enregistrer.

Enfin, créez la solution. Clic droit → Construire. Construire la solution générera une DLL d'assemblage, que nous utiliserons dans le prochain chapitre pour enregistrer ce plugin.

Gestion des exceptions dans le plugin

Le plus souvent, la logique de votre plugin devra gérer les exceptions d'exécution. Pour les plugins synchrones, vous pouvez renvoyer unInvalidPluginExecutionExceptionexception, qui affichera une boîte de dialogue d'erreur à l'utilisateur. La boîte de dialogue d'erreur contiendra le message d'erreur personnalisé que vous transmettez à l'objet Message de l'objet d'exception.

Si vous regardez notre code, nous lançons l'exception InvalidPluginExecutionException dans notre bloc catch.

throw new InvalidPluginExecutionException(ex.Message);

Conclusion

Les plugins sont définitivement essentiels à toute implémentation CRM personnalisée. Dans ce chapitre, nous nous sommes concentrés sur la compréhension du modèle de cadre d'événements, les étapes du pipeline, les messages et l'écriture d'un exemple de plugin. Dans le chapitre suivant, nous enregistrerons ce plugin dans CRM et le verrons fonctionner de bout en bout.

Dans le dernier chapitre, nous avons créé un exemple de plugin pour créer une activité de tâche de suivi lorsqu'un enregistrement Contact est créé. Dans ce chapitre, nous verrons comment enregistrer ce plugin dans CRM à l'aide de l'outil d'enregistrement de plugin. Vous pouvez trouver l'outil à cet emplacement: SDK / Tools / PluginRegistration / PluginRegistration.exe.

Pour plus de commodité, le processus d'enregistrement du plugin est divisé en trois sections -

  • Connexion au serveur
  • Enregistrement de l'Assemblée
  • Enregistrement du plugin

Connexion au serveur

Step 1 - Exécutez le PluginRegistration.exeà partir de l'emplacement spécifié précédemment. Cliquez sur le bouton Créer une nouvelle connexion.

Step 2- Dans la fenêtre de connexion, choisissez Office 365 car nous utilisons la version en ligne de CRM. Entrez vos informations d'identification et cliquez sur Connexion.

Step 3 - L'outil s'ouvrira et ressemblera à la capture d'écran suivante.

Enregistrement de l'Assemblée

Step 1 - Allez dans Register → Register New Assembly.

Step 2- Cela ouvrira la fenêtre Enregistrer un nouvel assemblage. Cliquez sur l'icône Naviguer et localisez la DLL du plugin que vous avez créée dans le dernier chapitre.

Step 3- Après avoir parcouru la DLL, cliquez sur Charger l'assemblage. Cela remplira l'assembly SamplePlugins et toutes ses classes de plugins. Tu peux voir lePostCreateContactclasse de plugin mise en évidence ci-dessous. Si votre assemblage de plugins avait 3 classes de plugins, il aurait montré trois plugins répertoriés ici.

Step 4- Sélectionnez le mode d'isolement comme sandbox, l'emplacement comme base de données et cliquez sur Enregistrer les plugins sélectionnés. Il vous montrera un message de réussite, si l'enregistrement est réussi.

Enregistrement du plugin

Nous allons maintenant enregistrer les étapes spécifiques sur lesquelles les plugins individuels seront appelés.

Step 1 - Sélectionnez le plugin PostCreateContact.

Step 2 - Cliquez sur Enregistrer → Enregistrer une nouvelle étape.

Step 3 - Nous enregistrerons ce plugin lors de la création de l'entité Contact, en post-opération et en mode synchrone.

Message - Créer

Primary Entity - Contact

Event Pipeline Stage of Execution - Post-opération

Execution Mode - Synchrone

Conservez le reste des options par défaut et cliquez sur Enregistrer une nouvelle étape.

Vous pouvez voir une nouvelle étape ajoutée au plugin.

Nous allons maintenant passer à CRM et tester si notre plugin fonctionne correctement. Notez que ces étapes de test sont spécifiques à notre exemple de plugin.

Tester le plugin

Accédez à l'onglet Contacts et créez un nouvel enregistrement. Une fois que vous avez enregistré l'enregistrement, vous pouvez voir une nouvelle activité créée et associée à cet enregistrement.

Vous pouvez cliquer sur l'activité pour voir les détails que nous avions définis dans le code.

Cela confirme que notre plugin a fonctionné avec succès. De même, vous pouvez étendre vos plugins pour obtenir des fonctionnalités très complexes.

Microsoft Dynamics CRM fournit deux services Web importants qui sont utilisés pour accéder à CRM à partir d'une application externe et invoquer des méthodes Web pour effectuer des opérations de données commerciales courantes telles que la création, la suppression, la mise à jour et la recherche dans CRM.

Considérez les scénarios suivants -

  • Vous disposez d'une application .NET externe, qui doit communiquer avec CRM. Par exemple, vous souhaiterez peut-être insérer un enregistrement de contact dans CRM lorsqu'un nouveau client est enregistré dans votre application externe.

  • Ou peut-être souhaitez-vous rechercher des enregistrements dans CRM et afficher les résultats de la recherche dans votre application externe.

Dans de tels scénarios, vous pouvez utiliser les services Web exposés par CRM pour les consommer dans votre application et effectuer des opérations de création, de suppression, de mise à jour et de recherche dans CRM.

Service Web IDiscoveryService

Ce service Web renvoie une liste des organisations auxquelles appartient l'utilisateur spécifié et le point de terminaison de l'URL pour chacune des organisations.

Service Web IOrganizationService

Ce service Web est le service Web principal utilisé pour accéder aux données et métadonnées dans CRM. Le IOrganizationService utilise deux assemblys importants -Microsoft.Xrm.Sdk.dll et Microsoft.Crm.Sdk.Proxy.dll. Ces assemblys se trouvent dans le package SDK CRM à l'intérieur duBin dossier.

Microsoft.Xrm.Sdk.dll

Cet assembly définit les méthodes et les types xRM de base, y compris les classes proxy pour simplifier la connexion à Microsoft Dynamics CRM, les méthodes d'authentification et les contrats de service.

Microsoft.Crm.Sdk.Proxy.dll

Cet assembly définit les demandes et les réponses pour les messages non essentiels ainsi que les énumérations requises pour travailler avec les données de l'organisation. Voici les espaces de noms pris en charge par ces deux assemblys.

Chacun de ces assemblys prend en charge certains messages, qui seront utilisés pour travailler avec les données stockées dans n'importe quelle entité. Une liste complète des messages pris en charge par eux peut être trouvée dans les liens suivants -

Supported xRM Messages - https://msdn.microsoft.com/en-us/library/gg334698.aspx

Supported CRM Messages - https://msdn.microsoft.com/en-us/library/gg309482.aspx

Méthodes du service Web IOrganizationService

le IOrganizationService fournit huit méthodes qui vous permettent d'effectuer toutes les opérations courantes sur le système et les entités personnalisées ainsi que les métadonnées de l'organisation.

Sr.Non Méthode et description
1

IOrganizationService.Create

Crée un enregistrement.

2

IOrganizationService.Update

Met à jour un enregistrement existant.

3

IOrganizationService. Retrieve

Récupère un enregistrement.

4

IOrganizationService. RetrieveMultiple

Récupère une collection d'enregistrements.

5

IOrganizationService. Delete

Supprime un enregistrement.

6

IOrganizationService. Associate

Crée un lien entre les enregistrements.

sept

IOrganizationService.Disassociate

Supprime un lien entre les enregistrements.

8

IOrganizationService.Execute

Utilisé pour le traitement des enregistrements courants ainsi que pour les traitements spécialisés tels que la résolution de cas, la détection des doublons, etc.

Exemple de service Web

Pour comprendre comment les services Web fonctionnent dans CRM, nous examinerons un exemple fourni par CRM SDK. Dans cet exemple, nous allons créer un nouvel enregistrement de compte, le mettre à jour, puis finalement le supprimer à l'aide du CRMIOrganizationService service Web.

Step 1- Ouvrez le dossier dans lequel vous avez extrait le SDK CRM. Ouvrez maintenant la solution QuickStartCS.sln en accédant à l'emplacement suivant: SDK \ SampleCode \ CS \ QuickStart

Step 2 - Nous explorerons le QuickStart avec Simplified Connectionprojet. Ouvertapp.configDans ce projet. Par défaut, leconnectionStrings la section de ce fichier sera commentée.

À partir de là, décommentez la première clé de chaîne de connexion et modifiez les trois détails suivants -

Url- Spécifiez l'URL de votre instance CRM. Dans notre cas, puisque nous utilisons la version en ligne de CRM, vous devrez mentionner cette URL.

Username - Votre nom d'utilisateur CRM Online.

Password - Votre mot de passe CRM Online.

Step 3 - Ouvrez le SimplifiedConnection.cs fichier dans ce projet et Runmethod à l'intérieur.

public void Run(StringconnectionString, boolpromptforDelete) {
   try {
      
      // Establish a connection to the organization web service using CrmConnection.
      Microsoft.Xrm.Client.CrmConnection connection =
         CrmConnection.Parse(connectionString);
      
      // Obtain an organization service proxy.
      // The using statement assures that the service proxy will be properly disposed.
      using(_orgService = new OrganizationService(connection)) {

         //Create any entity records this sample requires.
         CreateRequiredRecords();
         
         // Obtain information about the logged on user from the web service.
         Guid userid = ((WhoAmIResponse)_orgService.Execute(new WhoAmIRequest())).UserId;
         SystemUser systemUser = (SystemUser)_orgService.Retrieve("systemuser",userid,
            new ColumnSet(newstring[]{"firstname","lastname"}));
         
         Console.WriteLine("Logged on user is {0} {1}.",
            systemUser.FirstName,systemUser.LastName);

         // Retrieve the version of Microsoft Dynamics CRM.
         RetrieveVersionRequest versionRequest = new RetrieveVersionRequest();
         RetrieveVersionResponse versionResponse =
            (RetrieveVersionResponse)_orgService.Execute(versionRequest);
         Console.WriteLine("Microsoft Dynamics CRM version {0}.",
            versionResponse.Version);
         
         // Instantiate an account object. Note the use of option set
         enumerations defined in OptionSets.cs.
         
         // Refer to the Entity Metadata topic in the SDK documentation to
         determine which attributes must
         
         // be set for each entity.
         Account account = new Account{Name = "Fourth Coffee"};
         account.AccountCategoryCode = new OptionSetValue(
            (int)AccountAccountCateg oryCode.PreferredCustomer);
         account.CustomerTypeCode = new OptionSetValue(
            (int)AccountCustomerTypeCod e.Investor);
         
         // Create an account record named Fourth Coffee.
         _accountId = _orgService.Create(account);
         Console.Write("{0} {1} created, ",account.LogicalName,account.Name);
         
         // Retrieve the several attributes from the new account.
         ColumnSet cols = new ColumnSet(
            new String[]{"name","address1_postalcode","lastusedincampaign"});
         Account retrievedAccount =
            (Account)_orgService.Retrieve("account", _accountId, cols);
         Console.Write("retrieved, ");

         // Update the postal code attribute.
         retrievedAccount.Address1_PostalCode = "98052";

         // The address 2 postal code was set accidentally, so set it to null.
         retrievedAccount.Address2_PostalCode = null;

         // Shows use of a Money value.
         retrievedAccount.Revenue = new Money(5000000);

         // Shows use of a Boolean value.
         retrievedAccount.CreditOnHold = false;
         
         // Update the account record.
         _orgService.Update(retrievedAccount);
         Console.WriteLine("and updated.");
         
         // Delete any entity records this sample created.
         DeleteRequiredRecords(promptforDelete);
      } 
   } 
   // Catch any service fault exceptions that Microsoft Dynamics CRM throws.
   catch(FaultException<microsoft.xrm.sdk.organizationservicefault>) {

      // You can handle an exception here or pass it back to the calling method.
      throw;
   }
}

Step 4- Cette méthode montre essentiellement toutes les opérations CRUD utilisant les services Web CRM. Le code crée d'abord une instance d'organisation, puis crée un enregistrement de compte, met à jour l'enregistrement créé, puis le supprime finalement. Examinons les composants importants de ce code. Pour voir les changements en cours de route dans CRM lorsque ce code s'exécute, vous pouvez déboguer ce code étape par étape (comme nous le verrons ci-dessous) et voir simultanément les changements dans CRM.

Step 4.1 - Établit la connexion à l'organisation en utilisant la chaîne de connexion que nous avions modifiée dans Step 2.

Microsoft.Xrm.Client.CrmConnection connection = CrmConnection.Parse(connectionString);

Step 4.2 - Obtient une instance proxy du service Web d'organisation CRM.

_orgService = new OrganizationService(connection)

Step 4.3 - Crée un nouvel objet d'entité Account et définit son nom, AccountCategoryCode et CustomerTypeCode.

Account account = new Account{Name = "Fifth Coffee"}; 
account.AccountCategoryCode = new OptionSetValue(
   (int)AccountAccountCategoryCode.P referredCustomer); 
account.CustomerTypeCode = new OptionSetValue(
   (int)AccountCustomerTypeCode.Investor);

Step 4.4 - Crée le nouvel enregistrement à l'aide de la méthode Create du service d'organisation.

_accountId = _orgService.Create(account);

Si vous accédez à CRM, vous verrez un enregistrement de compte nouvellement créé.

Step 4.5 - Une fois le compte créé, le service récupère l'enregistrement à partir de CRM à l'aide de la méthode du service Web Récupérer.

ColumnSet cols = new ColumnSet(new String[]{
   "name","address1_postalcode","lastusedincampaign"}); 
Account retrievedAccount = 
   (Account)_orgService.Retrieve("account", _accountId, cols);

Step 4.6 - Une fois l'enregistrement récupéré, vous pouvez définir la valeur mise à jour de l'enregistrement.

retrievedAccount.Address1_PostalCode = "98052"; 
retrievedAccount.Address2_PostalCode = null; 
retrievedAccount.Revenue = new Money(5000000); 
retrievedAccount.CreditOnHold = false;

Step 4.7 - Après avoir défini la valeur mise à jour de l'enregistrement, mettez à jour l'enregistrement dans la base de données CRM à l'aide de la méthode de service Web Mettre à jour.

_orgService.Update(retrievedAccount);

Si vous ouvrez l'enregistrement dans CRM, vous y verrez ces valeurs mises à jour.

Step 4.8 - Enfin, supprimez l'enregistrement à l'aide de la méthode de service Web Supprimer.

_orgService.Delete(Account.EntityLogicalName, _accountId);

Si vous actualisez maintenant le même enregistrement dans CRM, vous verrez que l'enregistrement n'est plus disponible car il est déjà supprimé.

Conclusion

Dans ce chapitre, nous avons traité de deux services Web importants fournis par CRM et d'un exemple concret de la façon dont ces services Web peuvent être utilisés à partir d'une application externe pour effectuer diverses opérations CRUD.

Les solutions fournissent un cadre pour l'empaquetage, l'installation et la désinstallation de composants en fonction des fonctionnalités de votre entreprise. Les solutions permettent aux personnalisateurs et aux développeurs de créer, de conditionner et de maintenir des unités de logiciels qui étendent le CRM. Toutes les personnalisations, extensions ou configurations effectuées dans CRM sont emballées, gérées et distribuées à l'aide de solutions. Les solutions peuvent être exportées sous forme de fichier zip à partir de l'organisation source, qui peuvent ensuite être importées dans l'organisation cible.

Pour comprendre cela, considérez les exemples de scénarios suivants -

  • En tant que développeur ou personnalisateur, vous disposez d'un CRM étendu ou personnalisé dans l'environnement de développement. Vous souhaitez maintenant empaqueter vos modifications et les déplacer vers l'environnement suivant. Pour cela, vous pouvez créer des solutions individuelles et les publier dans des environnements supérieurs.

  • En tant que fournisseur CRM tiers, vous avez créé un module CRM, qui permet de gérer les données dans les entités Microsoft Dynamics CRM à l'aide d'API de service Web externes. Maintenant, vous souhaitez vendre ce module à d'autres clients. A l'aide de solutions, vous pouvez packager ce module et les distribuer à d'autres clients qui pourront installer cette solution et utiliser les fonctionnalités fournies par votre module.

Types de solutions

Solution système par défaut

La solution système contient les composants de solution prêts à l'emploi définis dans Microsoft Dynamics CRM sans aucune personnalisation. De nombreux composants de la solution système sont personnalisables et peuvent être utilisés dans des solutions gérées ou des personnalisations non gérées.

Tout au long de ce didacticiel, nous n'avons créé aucune solution et avons personnalisé la solution système par défaut. Si vous vous souvenez, nous sommes allés à Paramètres → Personnalisations → Personnaliser le système. Cette option personnalise directement la solution par défaut.

Solution gérée

Une solution gérée est une solution achevée et destinée à être distribuée et installée. Les solutions gérées peuvent être installées sur le dessus de la solution système ou d'autres solutions gérées.

Important Points -

  • Si vous exportez une solution gérée d'une organisation et l'importez dans une autre, vous ne pouvez pas modifier la solution dans la nouvelle organisation.

  • Une solution gérée ne fait pas directement référence à la solution système.

  • La désinstallation d'une solution gérée désinstalle toutes les personnalisations associées à la solution.

  • Par défaut, une solution gérée ne peut pas être personnalisée dans l'organisation cible. Cependant, en utilisant le concept de propriétés gérées, vous pouvez définir si un composant de solution sera personnalisable et si oui, quelles parties spécifiques du composant seront personnalisables une fois que la solution sera exportée en tant que solution gérée.

Solution non gérée

Une solution non gérée est une solution qui est encore en cours de développement et qui n'est pas destinée à être distribuée. Une solution non gérée contient toutes les personnalisations non gérées des composants CRM, y compris les composants ajoutés, modifiés, supprimés ou supprimés. Par défaut, toute nouvelle solution est une solution non gérée. Cependant, vous pouvez exporter une solution non gérée en tant que solution gérée ou non gérée.

Important Points -

  • Si vous exportez une solution non gérée d'une organisation et l'importez dans une autre, vous pouvez modifier la solution dans la nouvelle organisation.

  • Une solution non gérée fait directement référence à la solution système. Par conséquent, les modifications apportées à une solution non gérée seront appliquées à toutes les solutions non gérées faisant référence aux mêmes composants, y compris la solution système.

  • Si vous supprimez un composant de solution d'une solution non gérée, le composant est supprimé définitivement du système et ne sera plus disponible. Si vous souhaitez simplement supprimer le composant d'une solution non gérée spécifique, utilisez remove au lieu de delete.

  • La désinstallation d'une solution non gérée ne supprime pas les personnalisations associées. Il supprime simplement la solution du système, mais les modifications que vous avez apportées seront toujours là.

Composants de la solution

Une solution peut être utilisée pour empaqueter les composants suivants qui peuvent être personnalisés à l'aide de solutions par défaut, non gérées ou gérées.

Type de composant Composant
Schéma Entités
Les attributs
Des relations
Ensembles d'options globaux
Interface utilisateur Ruban d'application
SiteMap
Formes
Rubans d'entité
Ressources Web
Analytique Tableaux de bord
Rapports
Visualisations
Processus / Code Processus
Dialogues
Flux de travail
Plugins
Assemblées
Étapes de traitement
Modèles Fusion et publipostage
Email
Contrat
Article
Sécurité Rôles de sécurité
Profils de sécurité au niveau du champ

Créer une solution

Step 1- Accédez à Paramètres → Solutions. Cliquez sur Nouveau.

Step 2 - Dans la fenêtre qui suit, saisissez les détails suivants et cliquez sur Enregistrer et fermer.

Display Name - Exemple de solution (cela peut être n'importe quel nom que vous voulez).

Name- Sera automatiquement défini en fonction du nom d'affichage. Cependant, vous pouvez changer cela.

Publisher- Éditeur par défaut. L'éditeur de solution fournit un préfixe de personnalisation et un préfixe de valeur d'option communs. La définition d'un éditeur de solution contrôle la manière dont vos solutions gérées peuvent être mises à jour une fois distribuées. Toutefois, pour cet exemple et pour la plupart des cas généraux, vous pouvez le définir comme éditeur par défaut.

Version- Spécifiez une version au format suivant: major.minor.build.revision. Par exemple: 1.0.0.0.

Par défaut, chaque solution est ajoutée en tant que solution non gérée. Une fois qu'une solution est ajoutée, vous pouvez ajouter des composants de solution en les créant dans le contexte de cette solution ou en ajoutant les composants existants d'autres solutions. Par exemple, vous pouvez créer de nouvelles entités, formulaires, etc. dans le cadre de cette nouvelle solution.

Exporter une solution

Une fois que vous avez mis en place toutes les modifications que vous souhaitez empaqueter en tant que solution gérée ou non gérée, vous pouvez exporter votre solution comme suit.

Step 1- Ouvrez l'organisation source et accédez à Paramètres → Solutions. Sélectionnez la solution que vous souhaitez exporter et cliquez sur le bouton Exporter.

Step 2 - Dans la fenêtre Publier les personnalisations, cliquez sur Publier toutes les personnalisations, puis sur Suivant.

Step 3- Dans la fenêtre qui suit, vous pouvez éventuellement sélectionner n'importe quel paramètre système tel que la numérotation automatique, les paramètres du calendrier, etc. à exporter avec la solution. Pour l'instant, vous pouvez éviter de sélectionner une option et cliquez sur Suivant.

Step 4- Dans la fenêtre Type de package, vous pouvez choisir d'exporter le package en tant que solution gérée ou non gérée. Pour cet exemple, exportons-le comme non géré. Une fois terminé, cliquez sur Suivant.

Step 5- Dans la fenêtre suivante, vous pouvez voir la version source de CRM que vous utilisez et sélectionner la version cible. Cliquez sur Exporter.

Step 6- Une fois que vous cliquez sur Exporter, la solution sera exportée sous forme de fichier zip. Enregistrez ce fichier zip à un emplacement souhaité sur votre système.

Importer une solution

Maintenant, nous allons importer le fichier zip de la solution que nous avons exporté dans la section précédente vers une nouvelle organisation cible.

Step 1- Ouvrez l'organisation cible et accédez à Paramètres → Solutions. Cliquez sur Importer.

Step 2 - Parcourez le fichier zip que vous avez téléchargé à partir de l'étape d'exportation et cliquez sur Next.

Step 3- Dans la fenêtre suivante, vous pouvez afficher les détails du package de solution si nécessaire. Cliquez sur Importer pour démarrer le processus d'importation de la solution.

Step 4- Une fois le processus d'importation terminé, il affichera l'état de réussite ou d'échec. Si le processus réussit, cliquez sur Publier toutes les personnalisations. En cas d'échec de l'importation de la solution, vous obtiendrez un journal d'erreurs détaillé sur quelle étape du processus d'importation a échoué.

Step 5- Nous avons fini. La solution sera importée avec succès dans l'organisation cible. Cliquez sur Fermer.

Résolution de conflit

Étant donné que plusieurs développeurs peuvent travailler sur la personnalisation et l'extension du CRM, vous disposerez de plusieurs solutions gérées et non gérées. L'exportation et l'importation de ces solutions peuvent parfois entraîner des scénarios de conflit. Par exemple, supposons que «Solution A» contienne un champ dans un formulaire tandis que «Solution B» a supprimé le champ et «Solution C» a renommé le champ. Dans ce scénario, quel serait le changement final? Dans ces scénarios contradictoires, CRM utilise deux approches.

Merge- Cette approche est utilisée pour les composants de l'interface utilisateur tels que la barre de commande, les rubans et les plans de site. Selon cette approche, les composants de la solution sont recalculés à partir du bas et les personnalisations non gérées de l'organisation sont les dernières à s'appliquer.

Top Wins- Cette approche est utilisée pour tous les autres scénarios de conflit à l'exception des composants de l'interface utilisateur. Selon cette approche, la dernière modification (gérée ou non gérée) prend la priorité et est appliquée.

Conclusion

Dans ce chapitre, nous avons présenté le concept de solutions et différents types de solution et leurs composants. Nous avons ensuite appris à créer, exporter et importer une solution. Enfin, nous avons étudié les deux stratégies de résolution de conflit, qui se produisent lorsque nous avons plusieurs solutions gérées et non gérées affectant les mêmes composants de solution.