De personalización de Microsoft CRM? la programación cerrada la actividad de correo electrónico
Microsoft CRM es la respuesta de Microsoft CRM y tratar de conseguir la cuota de mercado de Siebel, Oracle y otros tradicionales de clientes Gestión de relaciones con los proveedores del sistema. De Microsoft CRM utiliza todo el espectro de Microsoft tecnologías recientes:. Net, MS Exchange, MS Outlook, MS SQL Server, la replicación, indexación, Active Directory, Windows 2000/2003 modelo de seguridad, C #, VB.Net, HTML, XML Web Service, XLTP, Javascript para nombrar unos pocos. a día de hoy tema es la actividad de la programación de tipo de correo electrónico - por lo general frente a estas personalizaciones al mejorar Microsoft Exchange Connector CRM. ¿Cómo se crea cerrado actividad - este es el tema de discusión principal. Vamos el uso de C #. codingOne neto de las funciones de nuestro Canje de controlador de eventos / Pica es la creación de la actividad MS CRM Cerrado en el manejo de mensajes de correo electrónico entrantes y salientes. La interacción con Microsoft CRM utiliza dos se acercaron? utilizando MS CRM SDK (manejo de entrada y salida de mensajes XML) y a través de acceso directo a la base de datos MS CRM. Primero veamos en el Cerrado algoritmo de actividad de creación: 1. En primer lugar tenemos que entender la entidad que tenemos que crear actividad: Cuenta, de plomo o de contacto. La selección debe utilizar criterios específicos? en nuestro caso esta es la dirección de correo electrónico: if ((crmAccount = crmConnector.GetAccount (mailboxFrom))! = null) () else if ((crmContact = crmConnector.GetContact (mailboxFrom))! = null) () else if ((crmLead = crmConnector.GetLead (mailboxFrom))! = null) () 2. Entonces tenemos que obtener orientación de los usuarios de MS CRM, que posee esta entidad, C # código como este: crmUser = crmConnector.GetUser (crmAccount.GetOwnerId ()); 3. El siguiente paso es cerrar la creación de la actividad: 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. El método para crear actividad cerrado: Guid público CreateEmailActivity (GUID userid, fromObjectType int, Guid fromObjectId, toObjectType int, Guid toObjectId, mailFrom cadena, mailto string, string asunto, el cuerpo de cadena) (try (log.debug ( "Preparación para la actividad de correo Creación ");// BizUser proxy objectMicrosoft.Crm.Platform.Proxy.BizUser bizUser = Microsoft.Crm.Platform.Proxy.BizUser nuevo (); sysPassword ICredentials credenciales = new NetworkCredential (sysUserId,, sysDomain); bizUser.Url = crmDir + "BizUser.srf"; bizUser.Credentials = credenciales; userAuth Microsoft.Crm.Platform.Proxy.CUserAuth = bizUser.WhoAmI ();// objectMicrosoft.Crm.Platform.Proxy proxy crmemail. email crmemail = Microsoft.Crm.Platform.Proxy.CRMEmail nuevo (); email.Credentials = credenciales; email.Url = crmDir + "CRMEmail.srf"; / / Configurar la cadena XML para la strActivityXml activitystring = ""; strActivityXml + = " "; strActivityXml + = "") + "]]>"; StrActivityXml + = ""; strActivityXml + = userId.ToString ( "B") + ""; strActivityXml + = "";// configurar la cadena XML para la actividad partiesstring strPartiesXml = ""; strPartiesXml + = ""; strPartiesXml + = "" + mailTo + ""; si (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 + ""; si (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); / / Crear el e-mail objectGuid emailId = new Guid (email.Create (userAuth, strActivityXml, strPartiesXml)); regreso emailId;) catch (System.Web.Services.Protocols.SoapException e) (log.debug ( "ErrorMessage:" e.Message + + "" + E. Detail.OuterXml + "Fuente:" + e.Source);) catch (Exception e) (log.debug (e.Message + "" + e.StackTrace);) return nuevo GUID ();) 5. Para hacer que la actividad recién creada se muestre correctamente es necesario configurar son banderas de acuerdo a la norma MS CRM: Público UpdateActivityCodes void (GUID emailId) (try (OleDbCommand command = conn.CreateCommand (); command.CommandText = "UPDATE SET ActivityBase DirectionCode = (?), statecode = (?), PriorityCode = (?) DONDE ActivityId = (?)"; command.Prepare (); command.Parameters.Add (OleDbParameter nuevo ( "DirectionCode", Microsoft.Crm.Platform.Types.EVENT_DIRECTION.ED_INCOMING)); command.Parameters.Add (OleDbParameter nuevo ( "statecode", , Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED)); command.Parameters.Add (OleDbParameter nuevo ( "PriorityCode", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM)); command.Parameters.Add (nuevo OleDbParameter ( "ActivityId", emailId)); log.debug ( "Preparación para actualizar el código de actividad" + 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 prioridad = (?), Estado = (?), QueueId = (?) DONDE ObjectId = (?)"; command.Prepare (); command.Parameters.Add (OleDbParameter nuevo ( "Priority", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM)); command.Parameters.Add ( OleDbParameter nuevo ( "Estado", Microsoft.Crm.Platform.Types.ACTIVITY_STATE.ACTS_CLOSED)); command.Parameters.Add (OleDbParameter nuevo ( "QueueId", queueId)); command.Parameters.Add (OleDbParameter nuevo ( "ObjectId", emailId)); de registro. debug ( "Preparación para actualizar Código de la cola de la actividad "+ emailId.ToString (" B ") +" en QueueItemBase "); command.ExecuteNonQuery ();) catch (Exception e) (log.debug (e.Message +" "+ e.StackTrace);) personalizar) Feliz, aplicación y modificación: Si desea nosotros para hacer el trabajo - darnos una llamada 1-866-528-0577! El help@albaspectrum.comAbout AuthorBoris Makushkin es el plomo Programación en Alba Spectrum Technologies? EE.UU. en todo el país de Microsoft CRM, Microsoft Great Plains
Artículo Fuente: Messaggiamo.Com
Related:
» Seo Elite: New Seo Software!
» AntiSpywareBOT
» Reverse Mobile
» Error Nuker
Webmaster obtener el código html
Añadir este artículo a su sitio web ahora!
Webmaster Envíe sus artículos
No es necesario que se registre! Completa el formulario y su artículo está en el Messaggiamo.Com Directorio!