La personnalisation de Microsoft CRM? programmation de l'activité privée email
Microsoft CRM est la réponse de Microsoft CRM et de tenter d'obtenir leur part de marché de Siebel, Oracle et d'autres relations avec la clientèle traditionnelle du système de gestion des fournisseurs. Microsoft CRM utilise tous le spectre de Microsoft dernières technologies:. Net, MS Exchange, MS Outlook, MS SQL Server, la réplication, de l'indexage, Active Directory, Windows 2000/2003 modèle de sécurité, C #, VB.Net, HTML, XML Web Service, XLTP, Javascript, pour ne nommer que quelques-uns. Aujourd'hui, le thème est l'activité de programmation de type e-mail - vous le plus souvent faire face à ces personnalisations lorsque vous améliorer CRM connecteur Microsoft Exchange. Comment créez-vous fermé activité - c'est le principal sujet de discussion. Nous vous utiliser C #. codingOne nette des rôles de notre Exchange Event Handler / Lavabo MS CRM est la création d'activité privée dans le traitement de courrier entrant et sortant des messages. L'interaction avec Microsoft CRM utilise deux approché? en utilisant MS CRM SDK (en entrée et en sortie de traitement des messages XML) et via un accès direct à la base de données MS CRM. Examinons d'abord à la création d'activité privée algorithme: 1. Nous avons d'abord besoin de comprendre l'entité, nous devons créer activité pour compte, le plomb ou Contact. La sélection devrait utiliser des critères spécifiques? dans notre cas, c'est l'adresse e-mail: si ((crmAccount = crmConnector.GetAccount (mailboxFrom))! = null) () else if ((crmContact = crmConnector.GetContact (mailboxFrom))! = null) () else if ((crmLead = crmConnector.GetLead (mailboxFrom))! = null) () 2. Ensuite, nous devons nous GUID utilisateur de MS CRM, qui est propriétaire de cette entité, C # code comme ceci: crmUser = crmConnector.GetUser (crmAccount.GetOwnerId ()); 3. L'étape suivante est la création d'activité privée: emailId = crmConnector.CreateEmailActivity (crmUser.GetId (), Microsoft.Crm.Platform.Types.ObjectType.otAccount, crmAccount.GetId (), Microsoft.Crm.Platform.Types.ObjectType.otSystemUser, crmUser.GetId (), crmAccount.GetEmailAddress (), crmUser.GetEmailAddress (), sSubject, sBody), 4. La méthode pour créer fermé activité: public Guid CreateEmailActivity (Guid userId, int fromObjectType, Guid fromObjectId, int toObjectType, Guid toObjectId, mailFrom string, string mailTo, string sujet, string body) (try (log.Debug ( "Préparez-vous pour l'activité Créer ");// BizUser proxy objectMicrosoft.Crm.Platform.Proxy.BizUser bizUser = new Microsoft.Crm.Platform.Proxy.BizUser (); ICredentials pouvoirs = new NetworkCredential (sysUserId, sysPassword, sysDomain); bizUser.Url = crmDir + "BizUser.srf"; bizUser.Credentials = pouvoirs; Microsoft.Crm.Platform.Proxy.CUserAuth userAuth = bizUser.WhoAmI ();// CRMEmail proxy objectMicrosoft.Crm.Platform.Proxy. CRMEmail email = nouveau Microsoft.Crm.Platform.Proxy.CRMEmail (); = email.Credentials pouvoirs; email.Url = crmDir + "CRMEmail.srf"; / / Définit la chaîne XML pour la activitystring strActivityXml = ""; strActivityXml + = " "; strActivityXml + = "") + "]]>"; StrActivityXml + = ""; strActivityXml + = userId.ToString ( "B") + ""; strActivityXml + = "";// Mettre en place la chaîne XML pour l'activité partiesstring strPartiesXml = ""; strPartiesXml + = ""; strPartiesXml + = "" + mailTo + ""; if (toObjectType == Microsoft.Crm.Platform.Types.ObjectType.otSystemUser) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otSystemUser.ToString () + "";) else if (toObjectType == Microsoft.Crm.Platform.Types.ObjectType.otAccount) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otAccount.ToString () + "";) else if (toObjectType == Microsoft.Crm.Platform . Types.ObjectType.otContact) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otContact.ToString () + "";) else if (toObjectType == Microsoft.Crm.Platform.Types.ObjectType.otLead) (strPartiesXml + = " "+ Microsoft.Crm.Platform.Types.ObjectType.otLead.ToString () + "";) strPartiesXml + = "" + toObjectId.ToString ( "B") + ""; strPartiesXml + = ""; strPartiesXml + = Microsoft.Crm.Platform.Types.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_TO_RECIPIENT.ToString (); strPartiesXml + = ""; strPartiesXml + = ""; strPartiesXml + = ""; strPartiesXml + = "" + mailFrom + ""; if (fromObjectType == Microsoft.Crm.Platform.Types.ObjectType.otSystemUser) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otSystemUser.ToString () + "";) else if (fromObjectType == Microsoft.Crm.Platform.Types.ObjectType.otAccount) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otAccount.ToString () + "";) else if (fromObjectType == Microsoft.Crm.Platform . Types.ObjectType.otContact) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otContact.ToString () + "";) else if (fromObjectType == Microsoft.Crm.Platform.Types.ObjectType.otLead) (strPartiesXml + = " "+ Microsoft.Crm.Platform.Types.ObjectType.otLead.ToString () + "";) strPartiesXml + = "" + fromObjectId.ToString ( "B") + ""; strPartiesXml + = ""; strPartiesXml + = Microsoft.Crm.Platform.Types.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_SENDER.ToString (); strPartiesXml + = ""; strPartiesXml + = ""; strPartiesXml + = ""; log.Debug (strPartiesXml); / / Création de la e-mail objectGuid emailId = new Guid (email.Create (userAuth, strActivityXml, strPartiesXml)); emailId retour;) catch (System.Web.Services.Protocols.SoapException e) (log.Debug ( "errorMessage:" + e.Message + "" + e. Detail.OuterXml + "Source:" + e.Source);) catch (Exception e) (log.Debug (e.Message + "" + e.StackTrace);) return new Guid ();) 5. Pour faire de l'activité vient d'être créé sera affiché correctement, vous devez configurer ce drapeaux selon les normes MS CRM: public void UpdateActivityCodes (Guid emailId) (try (OleDbCommand command = conn.CreateCommand (); command.CommandText = "UPDATE ActivityBase SET DirectionCode = (?), StateCode = (?), PriorityCode = (?) ActivityId WHERE = (?)"; command.Prepare (); command.Parameters.Add (nouveau OleDbParameter ( "DirectionCode", Microsoft.Crm.Platform.Types.EVENT_DIRECTION.ED_INCOMING)); command.Parameters.Add (nouveau OleDbParameter ( "StateCode" , Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED)); command.Parameters.Add (nouveau OleDbParameter ( "PriorityCode", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM)); command.Parameters.Add (nouveau OleDbParameter ( "ActivityId", emailId)); log.Debug ( "Préparez-vous à mettre à jour le code d'activité" + emailId.ToString ( "B") + "en ActivityBase"); command.ExecuteNonQuery ();) catch (Exception e) ( log.Debug (e.Message + "" + e.StackTrace);)) public void UpdateActivityQueueCodes (Guid emailId, Guid queueId) (try (OleDbCommand command = conn.CreateCommand (); command.CommandText = "UPDATE SET QueueItemBase Priorité = (?), l'Etat = (?), QueueId = (?) WHERE ObjectID = (?)"; command.Prepare (); command.Parameters.Add (nouveau OleDbParameter ( "Priorité", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM)); command.Parameters.Add ( nouveau OleDbParameter ( «État», Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED)); command.Parameters.Add (nouveau OleDbParameter ( "QueueId", queueId)); command.Parameters.Add (nouveau OleDbParameter ( "ObjectID", emailId)); log. Debug ( "Préparez-vous à mettre à jour activité de la file d'attente de code "+ emailId.ToString (" B ") +" en QueueItemBase "); command.ExecuteNonQuery ();) catch (Exception e) (log.Debug (e.Message +" "+ e.StackTrace);) Happy) personnalisation, la mise en œuvre et de la modification! Si vous voulez nous de faire le travail - appelez-nous 1-866-528-0577! Le help@albaspectrum.comAbout AuthorBoris Makushkin est Lead Software Developer à Alba Spectrum Technologies? Etats-Unis le pays de Microsoft CRM, Microsoft Great Plains
Source D'Article: Messaggiamo.Com
Related:
» Seo Elite: New Seo Software!
» AntiSpywareBOT
» Reverse Mobile
» Error Nuker
Webmaster obtenir le code html
Ajouter cet article sur votre site Web dès maintenant!
Webmaster envoyer vos articles
Aucune inscription requise! Remplissez le formulaire et votre article est dans le Messaggiamo.Com répertoire!