Maintenant que nous avons compris à quoi correspond la couche des métadonnées, nous pouvons commencer nos customisations par l’ajout d’un attribut sur un formulaire (nous verrons ensuite comment la « metabase » se met à jour automatiquement avec le nouvel attribut).

Pour commencer, nous allons modifier l’entité, ou l’objet, « contact » de Microsoft CRM et lui ajouter quelques attributs (voir le tableau ci-dessous) ; pour ce faire, il faut se connecter au CRM avec un utilisateur qui a les droits de customisation.

Une fois connecté au CRM :

a) Il faut cliquer sur le lien « Paramètres »

b) Choisir l’option « Personnalisation » dans le menu de gauche de Microsoft CRM pour accéder à la section de personnalisation de l’outil.

c) Une fois dans cette section, il faut sélectionner l’option « Personnaliser les entités » pour accéder à l’écran de personnalisation des entités.

personnalisation

Figure 3 : Personnaliser les entités

 

L’écran de personnalisation des entités donne une liste de toutes les entités pouvant être customisées ; pour ajouter un attribut à l’entité « contact », il suffit de double-cliquer sur la ligne « contact » dans la liste (voir figure 4).

liste entités

Figure 4 : Liste des entités customisables

 

Un nouvel écran apparaît après avoir double-cliqué sur la ligne « contact » ci-dessus (voir figure 5) :

entité contact

Figure 5 : Entité contact

 

Sur le côté gauche de ce nouvel écran, on peut apercevoir une série de menus :

· Informations : donne des renseignements sur l’entité, tels que le nom de l’entité, son appartenance (utilisateur ou organisation), le nom de l’entité dans le schéma (le nom de la table SQL), etc. ; c’est via ce menu également que l’on peut modifier le nom de l’entité (par exemple : compte peut devenir société, etc.)

· Formulaires et vues : permet de modifier ou de créer des vues (des requêtes) ou de modifier les formulaires existants

· Attributs : permet de modifier ou de créer des attributs (des champs)

· Relations : permet de voir ou de créer des relations entre les entités (existantes ou nouvelles)

· Messages : permet de modifier l’aide et tous les messages du système (à utiliser impérativement lorsqu’on renomme une entité, pour éviter d’avoir une désynchronisation entre le nom de l’entité affichée et l’aide aux utilisateurs)

liste attributs

Figure 6 : Liste des attributs de l'entité

 

Il va de soi que pour la création d’un nouvel attribut, nous devons passer par le menu « attributs » de l’entité ; une fois que l’on a cliqué sur le lien, on se retrouve devant la liste de tous les attributs existants pour l’entité « contact ».

Que retrouve-t-on sur cet écran ? Nous voyons plusieurs colonnes dont les plus importantes sont les 3 premières, à savoir le nom du schéma, le nom complet et le type.

Quelle est la signification de ces 3 colonnes ?

· Nom du schéma : c’est littéralement le nom du champ dans la table « contact »

· Nom complet : c’est le libellé de l’attribut qui apparaît à l’écran (celui-ci est toujours modifiable par après)

· Type : c’est le type de l’attribut (identique au type lors de la création d’un champ en SQL)

Voici les différents types possibles d’un attribut dans Microsoft CRM 3.0 :

Type Microsoft CRM

Type SQL Server

primarykey

uniqueidentifier

lookup

uniqueidentifier

nvarchar

nvarchar

ntext

ntext

int

int

float

float

money

money

datetime

datetime

bit

bit

picklist (boîte de sélection)

int

Tableau 1 : Types d'attribut

 

Il existe d’autres types tels que « owner », « customer », etc. qui sont créés automatiquement par le système lors de la création de relations entre entités mais nous n’allons pas nous en occuper dans ce document.

nv attribut

Figure 7 : Création d'un nouvel attribut

 

Pour ce premier exemple, nous allons créer une série de nouveaux attributs que nous utiliserons tout au long de ce document ; pour créer un attribut, il suffit de cliquer sur le bouton « nouveau » et, au nouvel écran, de remplir les différents champs nécessaires à la création de l’attribut :

attribut save

Figure 8 : Enregistrement d'un nouvel attribut

 

Une fois chaque champ défini, il suffit de cliquer sur un des boutons de sauvegarde situés sur la barre de menu de l’écran :

Voici les paramètres à utiliser pour notre exemple :

Attribut n°

Nom complet

Nom du schéma (automatique)

Niveau requis

Type

Valeurs possibles

Valeur par défaut

1

Adresse du compte

New_adresseducompte

Aucune contrainte

Bit

Non/Oui

Oui

2

A jour

New_ajour

Aucune contrainte

Bit

Non/Oui

Non

Tableau 2 : Attributs de l'exemple 1

 

A quoi vont-nous servir ces nouveaux attributs ? Voici une petite explication.

Tout le monde sait, après avoir utilisé Microsoft CRM, que lorsqu’on crée un contact à partir d’un compte client, l’adresse principale du contact est héritée du compte, et ceci grâce à la relation système qui existe entre ces 2 entités (ce point n’est pas abordé dans ce document) ; mais que se passe-t-il si on crée un contact et puis qu’on le relie à compte client existant ? L’adresse principale n’est tout simplement pas reprise automatiquement. De plus, si on modifie l’adresse du compte, aucune des adresses des contacts liés n’est mise à jour !

Les attributs que nous venons de rajouter vont dès lors nous permettre de pallier à ces 2 problèmes (beaucoup de clients me demandent ces customisations, qui sont, pour eux, une aide précieuse à l’encodage), et ils seront utilisés dans un « callout » et dans une règle de « workflow » (le déploiement de celui-ci sera expliqué pas à pas).

Revenons à notre base de données « metabase » et voyons les modifications qui y ont été apportée : pour ce faire, il suffit de faire tourner la requête suivante sur la base de données XX_METABASE :

select a.*, 'typename' = at.Description, 'isquoted' = at.Quoted 
from Entity e 
join Attribute a on (e.EntityId = a.EntityId) 
join AttributeTypes at on (a.AttributeTypeId = at.AttributeTypeId) 
where e.Name = 'contact 
and a.VisibleToPlatform = 1 
order by a.ColumnNumber

 

Voici, en partie, le résultat de cette requête (certaines colonnes et lignes ont été retirées pour plus de lisibilité) :

AttributeID

Name

PhysicalName

IsCustomField

typename

1B888D39-C537-47DC-80DB-55A6D3281863

contactid

ContactId

0

primarykey

[…]

[…]

[…]

[…]

[…]

AC6D7AAE-F250-4523-B83D-078530259EA1

new_adresseducompte

New_Adresseducompte

1

bit

C58E0DC4-C41D-4026-ACB2-4ECD6EE9CF02

new_adresseducomptename

new_adresseducompteName

1

virtual

0364F190-6641-4D5D-8B47-772B916CAAEE

new_ajour

New_AJour

1

bit

272DEB2F-3379-4127-A7CA-D8693CA7555E

new_ajourname

new_ajourName

1

virtual

Tableau 3 : Résultat de la requête sur la metabase

 

On constate d’après le résultat ci-dessus que la « metabase » n’a pas changé, elle reflète simplement le changement qui a été effectué dans la couche de données (donc dans la base de données XX_MSCRM). Ainsi, quelque soit le nombre d’attributs ajoutés et/ou supprimés, la « metabase » assure la synchronisation (et par la même la stabilité complète) entre la couche présentation et la couche de données : la plateforme Microsoft CRM sera ainsi toujours à jour !

entité contact 2

Figure 9 : Accès aux formulaires et vues

 

Maintenant que nos attributs ont été créés, il nous reste à les ajouter sur le formulaire ; ceci se fait via le menu « Formulaires et vues » de l’entité (voir figure 9).

Dans la partie de droite de la figure 9, on peut apercevoir toutes les vues créées par le système (dont la vue par défaut) ainsi que tous les formulaires existants (par défaut, il n’y a qu’un seul formulaire pour chaque entité).

Pour modifier le formulaire de l’entité « contact », il suffit de double-cliquer sur la ligne « Formulaire » dans l’écran de droite pour accéder au formulaire en mode « design » (comme dans Access).

Une fois dans le mode « design » du formulaire, on a la possibilité de créer ou de supprimer des champs via le menu de droite (voir figure 10) :

form design

Figure 10 : Formulaire en mode design

liste attributs entité

Figure 11 : Liste des attributs pour l'entité contact

 

Pour ajouter un champ existant, il suffit de cliquer sur le lien « Ajouter des champs » dans le menu de droite, pour voir apparaître la liste de tous les attributs du système (dont ceux que nous avons créés, voir figure 11).

On voit qu’un de nos 2 attributs (« A jour ») est disponible dans la liste de tous les attributs de l’entité ; ainsi, pour l’ajouter au formulaire, il suffit de le sélectionner (le cocher, plusieurs attributs pouvant être cochés), de lui spécifier l’onglet sur lequel il doit apparaître (l’onglet « Général » étant le premier onglet du formulaire, voir figure 10) et la section à laquelle le champ choisi appartiendra (choisir la section « Adresse » pour nos 2 attributs). Une fois les attributs sélectionnés et attribués au bon onglet et à la bonne section, il suffit de cliquer sur le bouton OK pour revenir à l’écran précédent.

Voici à quoi ressemble notre formulaire suite à l’ajout des 2 attributs « A jour » et « Adresse du compte » et après la suppression de quelques attributs non désirés :

form cleaning

Figure 12 : Ajout des 2 attributs au formulaire contact

 

L’écran est OK, il suffit de cliquer sur un des boutons d’enregistrement situés dans la barre de menu du haut pour enregistrer les changements (voir figure 10) ; ensuite, à l’écran des vues disponibles, cliquer également sur le bouton d’enregistrement pour fermer la fenêtre de modification de l’entité « contact » et revenir à la liste des entités modifiables (voir figure 4).

Maintenant que notre formulaire a été modifié, il faut encore « publier » les changements pour que la couche présentation soit synchronisée avec la metabase ; pour ce faire, il suffit de sélectionner l’entité « contact » dans la liste des entités (voir figure 4) et de cliquer sur le bouton « publier » situé dans la barre de menu, juste au-dessus de la liste des entités :

publication

Figure 13 : Bouton de publication

 

Lorsque l’utilisateur clique sur ce bouton, le processus de synchronisation se met en marche et le site Web est coupé pendant quelques secondes (équivalent à la commande « iisreset »).

publication en cours

Figure 14 : Publications des customisations en cours

 

Une fois la publication terminée, on peut apercevoir le résultat directement en ouvrant un contact existant, ou en créant un nouveau contact :

contact modifié

Figure 15 : Formulaire contact après publication des customisations

 

Et voilà !

Olivier