Rechercher dans ce blog

mardi 19 avril 2011

Dynamics CRM intégré à Microsoft Office Word 2007

Préalablement le composant Visual Studio pour Office doit être installé.

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

Aucun commentaire:

Enregistrer un commentaire