5/9/11

Importar ficheros adjuntos en CRM 2011

Un tema poco documentado y que puede ser fuente de bastantes frustraciones: aunque el nuevo sistema de importación de CRM está muy bien, ¿qué pasa cuando tenemos un montón de datos en forma de ficheros adjuntos? Los ficheros adjuntos se representan internamente con la entidad attachment aunque en la interfaz de usuario aparecen como Notas.

El proceso es así:

  1. Exportar los registros Nota que nos interesen mediante una búsqueda avanzada. No olvidar incluir la columna Regarding apuntando al registro padre de la nota. Los registros padre deben haber sido importados previamente.
  2. Guardar el excel obtenido con formato XML Spreadsheet 2003 Por ejemplo notes.xmlattachments_-1
  3. Añadir el campo PhysicalFileName con el mismo contenido que la columna File name.attachments_00
  4. Crear una carpeta Attachments y copiar en ella los ficheros adjuntos que queramos importar.
  5. Crear un fichero zip con el fichero notes.xml y la carpeta Attachments.
    Nota: si el tamaño total del fichero resultante es mayor de 8 MB ver la sección Ficheros grandes.
    attachments_01
  6. Desde el importador, mapear el campo PhysicalFileName a Document
  7. Mapear también el campo Regarding al nombre (o campo principal) de la entidad padre.attachments_02
  8. Por último podemos guardar el mapa creado por si necesitamos reutilizarlo más adelante.


Ficheros grandes

Lo que significa aquí grande depende de vuestra implementación de CRM. En la mía resultó ser de 8MB el límite de tamaño de los ficheros adjuntos.

  1. Repartir los ficheros en varias carpetas para que cada zip resultante sea de aproximadamente 5 MB.
  2. Copiar el fichero notes.xml en cada una de las carpetas.
  3. Crear n ficheros attachments1.zip, attachments2.zip etc
  4. Repetir el proceso de arriba para cada fichero zip.

Hay que tener en cuenta que en cada importación fallarán los registros para los que no existe el fichero correspondiente en la carpeta del zip. De todas formas, al final del proceso se habrán importado todos.

Gracias a David E. que comentó el punto clave del atributo PhysicalFileName.

No hay comentarios: