Personalizzazione di Microsoft CRM? chiuso l'attività di programmazione e-mail
Microsoft CRM è il CRM risposta di Microsoft e tentare di ottenere una quota di mercato da Siebel, Oracle e altri tradizionali fornitori Client Relationship Management System. Microsoft CRM utilizza tutto lo spettro di Microsoft recenti tecnologie:. Net, MS Exchange, MS Outlook, MS SQL Server, la replica, indicizzazione, Active Directory, Windows 2000/2003 modello di sicurezza, C #, VB.Net, HTML, XML Web Service, XLTP, Javascript per citarne alcuni. oggi argomento è l'attività di programmazione di tipo e-mail - di solito trattare con queste personalizzazioni, quando si migliora di Microsoft Exchange Connector CRM. Come si fa a creare chiuso l'attività - questo è l'argomento principale di discussione. We'll usare C #. codingOne netto dei ruoli dei nostri Exchange Event Handler / Sink è la creazione di attività di MS CRM chiuso nella movimentazione in entrata e in uscita messaggi e-mail. L'interazione con Microsoft CRM utilizza due avvicinato? utilizzando MS CRM SDK (movimentazione in entrata e in uscita messaggi XML) e tramite l'accesso diretto al database di MS CRM. Diamo una prima occhiata al chiuso algoritmo di creazione di attività: 1. In primo luogo abbiamo bisogno di capire l'entità abbiamo bisogno di creare attività per: Account, piombo o di contatto. La scelta dovrebbe utilizzare criteri specifici? nel nostro caso questo è l'indirizzo email: if ((crmAccount = crmConnector.GetAccount (mailboxFrom))! = null) () else if ((crmContact = crmConnector.GetContact (mailboxFrom))! = null) () else if ((crmLead = crmConnector.GetLead (mailboxFrom))! = null) () 2. Allora dobbiamo ottenere GUID della MS utente CRM, chi possiede questa entità, codice C # in questo modo: crmUser = crmConnector.GetUser (crmAccount.GetOwnerId ()); 3. Il prossimo passo è chiusa la creazione di attività: 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 (), sBody, sSubject), 4. Il metodo per creare attività di chiusura: public Guid CreateEmailActivity (Guid userid, fromObjectType int, Guid fromObjectId, toObjectType int, Guid toObjectId, mailFrom string, mailto string, string oggetto, string body) (try (log.Debug ( "Prepare for mail ATTIVITA ' ");// Creazione BizUser bizUser proxy objectMicrosoft.Crm.Platform.Proxy.BizUser = new Microsoft.Crm.Platform.Proxy.BizUser (); sysPassword credenziali ICredentials = new NetworkCredential (sysUserId,, sysDomain); bizUser.Url = crmDir + "BizUser.srf"; bizUser.Credentials = credenziali; userAuth Microsoft.Crm.Platform.Proxy.CUserAuth = bizUser.WhoAmI ();// CRMEmail objectMicrosoft.Crm.Platform.Proxy proxy. CRMEmail email = Microsoft.Crm.Platform.Proxy.CRMEmail new (); email.Credentials = credenziali; email.Url = crmDir + "CRMEmail.srf"; / / Imposta la stringa XML per il strActivityXml activitystring = ""; strActivityXml + = " "; strActivityXml + = "") + "]]>"; StrActivityXml + = ""; strActivityXml + = userId.ToString ( "B") + ""; strActivityXml + = "";// impostare la stringa di XML per l'attività 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); / / Create the e-mail objectGuid emailId = new Guid (email.Create (userAuth, strActivityXml, strPartiesXml)); return emailId;) catch (System.Web.Services.Protocols.SoapException e) (log.Debug ( "ErrorMessage:" e.Message + + "" + E. Detail.OuterXml + "Fonte:" + e.Source);) catch (Exception e) (log.Debug (e.Message + "" + e.StackTrace);) return new Guid ();) 5. Per rendere l'attività appena creato essere visualizzati correttamente dovete impostare è bandiere secondo le norme di MS CRM: pubblico UpdateActivityCodes void (Guid emailId) (try (comando OleDbCommand = conn.CreateCommand (); command.CommandText = "UPDATE ActivityBase SET DirectionCode = (?), statecode = (?), PriorityCode = (?) WHERE ActivityId = (?)"; command.Prepare (); command.Parameters.Add (nuovo OleDbParameter ( "DirectionCode", Microsoft.Crm.Platform.Types.EVENT_DIRECTION.ED_INCOMING)); command.Parameters.Add (nuovo OleDbParameter ( "statecode" , Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED)); command.Parameters.Add (nuovo OleDbParameter ( "PriorityCode", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM)); command.Parameters.Add (nuovo OleDbParameter ( "ActivityId", emailId)); log.Debug ( "Preparatevi ad aggiornare il codice attività" + emailId.ToString ( "B") + "in ActivityBase"); command.ExecuteNonQuery ();) catch (Exception e) ( log.Debug (e.Message + "" + ) e.StackTrace;)) public void UpdateActivityQueueCodes (Guid emailId, Guid queueId) (try (comando OleDbCommand = conn.CreateCommand (); command.CommandText = "UPDATE QueueItemBase SET Priority = (?), Stato = (?), QueueId = (?) WHERE ObjectId = (?)"; command.Prepare (); command.Parameters.Add (nuovo OleDbParameter ( "Priority", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM)); command.Parameters.Add ( nuovo OleDbParameter ( "Stato", Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED)); command.Parameters.Add (nuovo OleDbParameter ( "QueueId", queueId)); command.Parameters.Add (nuovo OleDbParameter ( "ObjectId", emailId)); log. debug ( "Preparazione per l'aggiornamento Codice di coda di attività "+ emailId.ToString (" B ") +" in QueueItemBase "); command.ExecuteNonQuery ();) catch (Exception e) (log.Debug (e.Message +" "+ e.StackTrace);) Happy) personalizzazione, l'implementazione e la modifica! Se si desidera noi a fare il lavoro - di darci una chiamata 1-866-528-0577! Il help@albaspectrum.comAbout AuthorBoris Makushkin è Lead Software Developer in Alba Technologies Spectrum? Nazionale USA di Microsoft CRM, Microsoft Great Plains
Fonte dell'articolo: Messaggiamo.Com
Related:
» Seo Elite: New Seo Software!
» AntiSpywareBOT
» Reverse Mobile
» Error Nuker
Webmaster prendi il Codice Html
Aggiungi questo articolo al tuo sito ora!
Webmaster invia i tuoi Articoli
Nessuna registrazione richiesta. Compila il form e i tuoi articoli sono nella Directory di Messaggiamo.Com