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,
- 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?
- El archivo adjunto se graba en bits.
Para solucionar estos problemas hagamos lo siguiente.
- 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(">","").Replace(""","").Replace(" ","")); // Para quitar todo lo que queda de codigo HTML
y listo el campo de descripcion queda sin tag HTML.
- 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.








1 comentarios