Connecter / intégrer votre application et Microsoft Dynamics CRM (épisode 3)

Cet article est la suite des épisodes 1 et 2 de notre série consacrée à la connexion à Microsoft Dynamics CRM. L’épisode 1 était consacré au téléchargement de la machine virtuelle et à l’installation de Virtual PC. L’épisode 2 à la découverte de l’environnement dynamics CRM. Nous allons voir aujourd’hui comment créer des données dans l’application Dynamics.

Le scénario envisagé est le suivant: On suppose une application dans laquelle sont gérés des clients. On veut également gérer ces clients comme des comptes dans l’application Dynamics. On va devoir donc créer un compte dans CRM à chaque fois qu’un client est créé dans l’application CRM. On veut également qu’un mise à jour soit effectuée à chaque modification du client (La modification faites dans CRM ne sont pas répercutées dans l’application source, elles peuvent même étre “écrasées’  si une nouvelle mise à jour intervient.

Nous allons créer un programme dans Visual Studio qui crée un compte dans Dynamics CRM. Si votre environnement de développement est Visual Studio il vous suffira de reprendre le code et de l’insérer dans votre application.

Si vous développez avec un environnement de développement qui permet l’accès à des Web Services le core sera facilement adaptable.

Ouvrons Visual Studio dans la l’environnement de la machine vituelle et créons un projet de type Windows Form

clip_image002clip_image004

Appelons-le “Création Compte”

clip_image006

clip_image008

Faisons apparaître la toolbox.

clip_image010

clip_image012

Et ajoutons deux labels “Nom” et “N°”

clip_image014

clip_image016

clip_image018

clip_image020

Puis les deux Textbox correspondants “Nom”  et “Num”

clip_image022

clip_image022[1]

Nous allons référencer à présent le Web Service qui va nous permettre de dialoguer avec Dynamics (aller dans “Web References” puis dans “Add Web Reference”).

clip_image024

Dans la zone URL tapez: « http://moss:5555/mscrmservices/2007/CrmService.asmx » et cliquez sur « GO ».

Dans la zone « Web reference Name » tapez « Crmsdk ».

clip_image026

Cliquez sur « Add Reference »

Ajoutons à présent dans le formulaire un bouton que l’on nommera « Valider »

clip_image030

On va maintenant double-cliquer sur le bouton pour faire apparaître la méthode qui sera appelée lors de la validation.

clip_image032

Pour référencer le Web Service il faut rajouter l’instruction :

using Création_Compte.Crmsdk;

Puis dans la method button1_Click:

 

Crmsdk.CrmService service = new Crmsdk.CrmService();

CrmAuthenticationToken token = new CrmAuthenticationToken();

token.AuthenticationType = 0;

token.OrganizationName = "MicrosoftCRM";

service.Url = "http://moss:5555/mscrmservices/2007/CrmService.asmx";

service.CrmAuthenticationTokenValue = token;

service.Credentials=System.Net.CredentialCache.DefaultNetworkCredentials;

account compte = new account();

compte.name = Nom.Text;

compte.accountnumber = Num.Text;

Guid id = service.Create(compte);

MessageBox.Show(id.ToString());

clip_image034

Executons à présent le programme (CTRL + F5)

clip_image036

Rentrons les valeurs Nom = Test, N° = A001 et validons

clip_image038

Le programme affiche l’id du compte créé. Il sera important de conserver cet identifiant si l’on veut accéder au compte ultérieurement.

On peut constater dans Dynamics que le compte a été effectivement créé.

clip_image040

On va voir maintenant comment faire un mise à jour dans le cas ou le compte a déjà été créé dans dynamics CRM et que l’on fait une modification dans l’application source.

Pour cela créons un nouveau champ que l’on intitulera « compteid » dont la propriété readonly sera « false » dans le formulaire et ajoutons également des champs pour saisir l’adresse du compte (on nommera ces champs Rue1, Rue2, CP et Ville).

clip_image042

Maintenant adaptons le programme pour qu’il prenne en compte les nouveaux champs ainsi que la distinction entre la création et la mise à jour (si l’id est non vide alors on est dans un cas de mise à jour).

Pour cela nous allons utiliser la fonction « Retrieve» qui permet de chercher une entité à partir de son identifiant ainsi que la fonction update pour faire une mise à jour.

Le code de validation devient alors :

account compte;

Guid id;

if (compteid.Text.Length == 0) // Création

{

compte = new account();

}

else // mise à jour

{

id = new Guid(compteid.Text);

compte = (account) service.Retrieve("account", id, null);

}

compte.name = Nom.Text;

compte.accountnumber = Num.Text;

compte.address1_line1 = Rue1.Text;

compte.address1_line2 = Rue2.Text;

compte.address1_postalcode = CP.Text;

compte.address1_city = Ville.Text;

if (compteid.Text.Length == 0) // Création

{

id = service.Create(compte);

compteid.Text = id.ToString();

}

else // mise à jour

{

service.Update(compte);

}

MessageBox.Show("Validation terminée");

Executons le programme en renseignant le nom et le numéro:

clip_image044

Le compte a bien été créé dans Dynamics :

clip_image046

Complétons à présent en remplissant l’adresse :

clip_image048

clip_image052

On peut constater que l’adresse a bien été mise à jour dans Dynamics CRM.

Maintenant que les comptes de notre application sont créés automatiquement dans dynamics il serait sympatique de pouvoir directement afficher dans notre formulaire les données CRM et pouvoir déclencher, sans quitter l’application, les fonctions associées à ces données (gestion des contacts, des opportunités commerciales etc.).

Ceci peut-être facilement effectué en embarquant internet explorer dans le formulaire et y afficher la page du compte associé.

Tout d’abord réaménageons les formulaire et insérons un contrôle de type webbrowser :

clip_image054

Il suffit ensuite de rajouter les informations suivantes à la fin de la métthode de validation :

webBrowser1.Refresh();

webBrowser1.Url = new System.Uri

("http://moss:5555/MicrosoftCRM/sfa/accts/edit.aspx?id={" +

compteid.Text + "}#");

webBrowser1.Show();

On peut voir que l’on a construit l’url permettant de retouver la fiche compte en insérant dans l’adresse l’id du compte que l’on veut récupérer (on peut appeler toute donnée CRM de cette façon, les régles de construction des url pour chaque type de donnée sont documentées).

Ré-exécutons notre code :

clip_image056

La page CRM est insérée dans le formulaire Windows. On a accès à la donnée que l’on a crée mais également aux autres données ou fonctions associées (à gauche ou en haut de la page Web).

Voilà. C’est tout pour aujourd’hui. J’espère que vous avez pu réaliser par vous même les étapes dans votre environnement.

Si vous souhaitez récupérer les sources du projet, contactez-moi

Rendez-vous à l’épisode 4.

xaviercXavier COURCHINOUX
Partner Technology Advisor
DPE – Microsoft France 
http://blogs.msdn.com/editeurs_de_logiciels
me contacter