martes, 11 de diciembre de 2007

Email To Case ….. Un ISV que se debe de mejorar

Hola a todos, hace tiempo que no me pongo a escribir un poco en este descuidado blog, bueno el trabajo nos tiene loco no solo a mi creo que a todos no, pero lo bueno de todo esto es que siempre los clientes no hacen algunas cosas que en nuestros pensamientos decimos "Y ahora como lo hago", lo que voy a mostrar en este momento es como adjuntar un archivo enviado desde un Email y pasarlo a un caso. Algo más sofisticado lo pueden ver en este link Email To Case que bueno personalmente pienso que son los mejores en lo que hacen, bueno la idea en realidad es hacer lo que se muestra en esa página pero en gran escala. Bueno la pregunta era como adjunto los archivos adjuntos de un email a un caso, todos los archivos email que se graban en la base de datos del CRM tienen 2 problemas,

  1. El body del Email es grabado con las etiquetas HTML es decir en la base de datos se graba "<b>HOLA<b>….<td><tr> … </tr></td> …", si nosotros queremos pasar esa etiqueta a un Textbox que ese es el control que se utiliza en la descripción del caso, se muestra con todas las etiquetas HTML que hay. La pregunta es cómo hacemos para quitar las etiquetas HTML?
  2. El archivo adjunto se graba en bits.

 

Para solucionar estos problemas hagamos lo siguiente.

  1. Primero para quitar todos los tag HTML lo que vamos a hacer es lo siguiente

     

    System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex("<[^>]+>");

    ……………

    String sDescripcioncaso = regEx.Replace(var["Description"].ToString(), "");

    ……………

    oIncident.description =HttpUtility.HtmlDecode(sDescripcioncaso.Replace("&gt;","").Replace("&quot;","").Replace("&nbsp;","")); // Para quitar todo lo que queda de codigo HTML

     

    y listo el campo de descripcion queda sin tag HTML.

     

  2. Para adjuntar un archivo primero debemos de crear una nota, luego adjuntamos el archivo como muestra el siguiente ejemplo:

     

    //Creamos el caso

    Guid guidNota = oservico.Create(oNotadecaso);

     

    //Luego atachamos el arhcivo adjunto

    UploadFromBase64DataAnnotationRequest oAnnotationCarga = new UploadFromBase64DataAnnotationRequest();

    oAnnotationCarga.AnnotationId = guidNota;

    oAnnotationCarga.FileName = var["FileName"].ToString();

    oAnnotationCarga.MimeType = var["MimeType"].ToString();

    oAnnotationCarga.Base64Data = var["Body"].ToString();

    UploadFromBase64DataAnnotationResponse uploaded = (UploadFromBase64DataAnnotationResponse)oservico.Execute(oAnnotationCarga);

     

    //Adjuntamos

    incident oCaso = new incident();

    oCaso.caseorigincode = new Picklist();

    oCaso.caseorigincode.Value = 11;

    oCaso.incidentid = new Key();

    oCaso.incidentid.Value = sGuidCaso;

    oservico.Update(oCaso);

     

     

    que tal… ahora si podemos implementar eso y tener un isv mas en nuestros crm :D …

     

    Salu2

     

     

Atilin.

Share this post
  • Share to Facebook
  • Share to Twitter
  • Share to Google+
  • Share to Email
  • More...

1 comentarios

 
© 2011 Dynamics CRM Rulez !!!!!!
Designed by BlogThietKe Cooperated with Duy Pham
Released under Creative Commons 3.0 CC BY-NC 3.0
Posts RSSComments RSS
Back to top