Le complément créé recherche les contacts par rapport au Nom complet.
Après sélection du contact, l'adresse est insérée au niveau du pointeur dans le document Office Word.
Voici les deux fonctions principales utilisées :
Les fonctions utilisent LINQ pour CRM.
Fonction de recherche des contacts :
private void prvLectureContacts() { var loCrm = new Xrm.XrmDataContext("CRM"); // Setup the Authentication Token CrmAuthenticationToken loToken = new CrmAuthenticationToken(); loToken.AuthenticationType = AuthenticationType.AD; loToken.OrganizationName = "entreprise"; CrmService loCrmService = new CrmService(); UriBuilder loBuilder = new UriBuilder("http://entreprise:5555/entreprise"); loBuilder.Path = "//MSCRMServices//2007//CrmService.asmx"; loCrmService.Url = loBuilder.Uri.ToString(); loCrmService.CrmAuthenticationTokenValue = loToken; loCrmService.Credentials = System.Net.CredentialCache.DefaultCredentials; loCrmService.CrmAuthenticationTokenValue = loToken; WhoAmIRequest loRequest = new WhoAmIRequest(); WhoAmIResponse loResponse = (WhoAmIResponse)loCrmService.Execute(loRequest); var loRequetContact = from c in loCrm.contacts where c.ownerid.Value == loResponse.UserId && c.fullname == txtRecherche.Text select c; cbResultat.Items.AddRange(loRequetContact.ToArray()); cbResultat.DisplayMember = "fullname"; }
Fonction d'insertion de l'adresse du contact:
private void buInsererAdresse_Click(object sender, EventArgs e) { poRange = Globals.ThisAddIn.Application.ActiveDocument.Content; try { String loAdresseSelectionnee = ((Xrm.contact)cbResultat.SelectedItem).fullname + "\n"; loAdresseSelectionnee += ((Xrm.contact)cbResultat.SelectedItem).address1_line1 + "\n"; loAdresseSelectionnee += ((Xrm.contact)cbResultat.SelectedItem).address1_postalcode + " "; loAdresseSelectionnee += ((Xrm.contact)cbResultat.SelectedItem).address1_city + "\n"; poRange.InsertAfter(loAdresseSelectionnee); } catch { MessageBox.Show("L'adresse du contact ne peut pas être ajoutée au document."); } }
Code source disponible : ContactAddIn_mscrm4