Secretos de personalización de Microsoft CRM? segunda edición
Este artículo es para avanzados de Microsoft CRM SDK los desarrolladores de C #. Se describe la técnica de programación de SQL directa, cuando SDK no tiene la funcionalidad para hacer el job.Introduction. Parece que Microsoft CRM se convierte en más y más popular, en parte porque los músculos de Microsoft detrás de él. Ahora se dirige a todo el espectro de la clientela del mercado horizontal y vertical. Que está estrechamente integrado con otras aplicaciones de Microsoft Business Soluciones de productos como Microsoft Great Plains, Solomon, Navision (los dos últimos en curso). Aquí se describe la técnica de crear una actividad cerrada de correo electrónico utilizando MS CRM SDK y SQL programming.Imaging directo algo como esto. Que necesita para manejar el correo entrante antes de que se ha comprometido a MS base de datos de Exchange. Es necesario analizar si el correo entrante no tiene GUID en su perjuicio (GUID permitirá MS CRM Exchange Connector para moverse de correo electrónico para Microsoft CRM y adjuntarlo a la de contacto, cuenta o plomo) - entonces usted todavía necesita buscar MS CRM en el caso si una de las cuentas, contactos o clientes potenciales tiene la dirección de correo electrónico que coincida con el correo electrónico del remitente Dirección - entonces usted necesita para crear actividad cerrado de correo electrónico en MS CRM, que se adjunta al objeto y se coloca en queue.How general para crear controlador de MS Exchange está fuera del ámbito de aplicación, consulte la siguiente Artículo: http://www.albaspectrum.com/Customizations_Whitepapers/Dexterity_SQL_VBA_Crystal/ExchangeHandlerExample.htmNow el código de abajo es clásico MS CRM SDK, y que generará la actividad de correo electrónico: Guid público CreateEmailActivity (GUID userid, tipoObjeto int, Guid objectId, mailFrom cadena, crmUser CRMUser, string asunto, el cuerpo de cadena) (try (log.debug ( "Preparación para la actividad de correo Creación de ");// BizUser proxy bizUser objectMicrosoft.Crm.Platform.Proxy.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 ();// crmemail correo electrónico objectMicrosoft.Crm.Platform.Proxy.CRMEmail proxy = new Microsoft.Crm.Platform.Proxy.CRMEmail (); 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 + = "" + crmUser.GetEmailAddress () + ""; strPartiesXml + = ' "+ Microsoft.Crm.Platform.Types.ObjectType.otSystemUser.ToString () +" "; strPartiesXml + ='" + crmUser.GetId (). toString ( "B ") +" "; strPartiesXml + =" "; strPartiesXml + = Microsoft.Crm.Platform.Types.ACTIVITY_PARTY_TYPE.ACTIVITY_PARTY_TO_RECIPIENT.ToString (); strPartiesXml + = ""; strPartiesXml + = ""; strPartiesXml + = ""; strPartiesXml + = "" + mailFrom + ""; si (objectType == Microsoft.Crm.Platform.Types.ObjectType.otAccount) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otAccount.ToString () + "";) else if (tipoObjeto == Microsoft.Crm.Platform . Types.ObjectType.otContact) (strPartiesXml + = "" + Microsoft.Crm.Platform.Types.ObjectType.otContact.ToString () + "";) else if (tipoObjeto == Microsoft.Crm.Platform.Types.ObjectType.otLead) (strPartiesXml + = " "+ Microsoft.Crm.Platform.Types.ObjectType.otLead.ToString () + "";) strPartiesXml + = "" + objectId.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 ();) Nuestros créditos a Anna Osborn (obviamente acuario pequeño bolsillo va a su ? sonrisa!), que sepamos cómo cerrar MS CRM Actividad: / / crea la activitystrActivityId = oActivity.Create (userAuth, strXML, activityPartyXml); / / cierra mientras los campos relevantes son completos oActivity.Close (userAuth, strActivityId, -1), pero en cualquier caso, lo que encuentre a continuación puede ayudarle a hacer lo que no puede CRM SDK. Ahora me gustaría compartir con ustedes el truco - no hay ningún método para realizar esta actividad cerrada en MS CRM SDK 1.2 (si alguien conoce una - lo debo su acuario pequeño bolsillo - ¡Sonríe!). Obviamente, Microsoft no admite si lo hace directamente sin pasar por la programación de SQL SDK. Sin embargo, yo diría que esto no es directa la creación de objetos - esto es más bien banderas de corrección. Tan aquí es lo que tenemos - este procedimiento puede hacer el trabajo y hacer que la actividad cerrado: public void UpdateActivityCodes (GUID emailId) (try (OleDbCommand command = conn.CreateCommand (); command.CommandText = "UPDATE ActivityBase SET 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 (nuevo OleDbParameter ( "PriorityCode", Microsoft.Crm.Platform.Types.PRIORITY_CODE.PC_MEDIUM)); command.Parameters.Add (OleDbParameter nuevo ( "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);)) personalizar feliz! Si usted quiere que nosotros hagamos el trabajo - darnos una llamada 1-866-528-0577! El help@albaspectrum.comAbout Karasev AuthorAndrew es Director de Tecnología en Alba Spectrum Technologies? EE.UU. en todo el país de Microsoft CRM, Microsoft Great empresa de personalización Llanos, con sede en Chicago, Arizona,
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!