viernes, 20 de junio de 2014

Importar un Term Set directamente desde un fichero .csv

Todos los que hayáis estado trabajando con metadatos administrados, es muy probable que en algún momento os hayan hecho la misma pregunta: “¿Existe algún tipo de fichero que yo pueda trabajar a mano y que posteriormente sirva para crear automáticamente el árbol de metadatos?” La respuesta en este caso es “sí”, aunque, por supuesto, tiene sus limitaciones:

Una de las limitaciones importantes es que solo se puede gestionar un Term Set (conjunto de términos) por fichero. Es imposible crear todo un Grupo de Términos. Así que si tienes 10 conjuntos de términos, tendrías que gestionar 10 ficheros .csv distintos.
image
Otra “limitación” muy importante es la excesiva rigidez del formato del fichero, que debe ser exactamente tal y como establece Microsoft. Si se te escapa una coma o pones mal un nombre de columna, la importación fallará y tendrás que revisar que el fichero sea estrictamente correcto.

En este post explicaré qué pasos seguir para importar correctamente un Term Set a partir de un fichero Excel.

Lo primero es generar un documento Excel en blanco, y crear columnas con los siguientes titulares:
  • Term Set Name: En la segunda fila de Excel especificaremos el nombre del conjunto de términos.
  • Term Set Description: En la segunda fila del Excel especificaremos la descripción del conjunto de términos.
  • LCID: (Dejar en blanco)
  • Available for Tagging: Incluir un “TRUE” en cada fila si queremos que el término esté disponible para usar desde la interface de las listas de SharePoint.
  • Term Description: Establece la descripción (opcional) de cada término
  • Level 1 Term: Nombre del primer nivel del término. A repetir para cada término de nivel inferior existente.
  • Level 2 Term: Nombre del segundo nivel del término. A repetir para cada término de nivel inferior existente.
  • Level 7 Term: Nombre del séptimo nivel del término.
Como ejemplo gráfico, nos debería quedar un Excel del siguiente estilo:
image
Es importante que entre los literales que introduzcáis en las celdas del documento no introduzcáis ninguna coma ni punto y coma, pues os puede jugar una mala pasada en la importación. Os recomiendo que si tenéis alguna coma del tipo “Rioja, La” hagáis una transformación previa (find & replace) del tipo “Rioja (La)”. De esta forma os asegurareis que no tendréis ningún problema en la importación.

Así pues, una vez tengamos todo el excel construido por completo según nuestra especificación, lo guardaremos como .csv

image
Una vez hecho esto, cerraremos nuestro cliente Excel, y abriremos el fichero desde nuestro querido Notepad.

Desde Notepad, lo primero que haremos será volver a “guardar como”, y esta vez guardaremos el fichero en formato “UTF-8” (en caso contrario tendremos un desaguisado con acentos y demás caracteres especiales).
image
Una vez guardado como .csv UTF-8, ya solo queda sustituir TODOS los puntos y coma del fichero por comas simples. Como comenté, el formato SharePoint es muy rígido y solo admite .CSV separados por comas.
image
En el supuesto caso que en alguno de los literales del Excel os hubierais descuidado alguna coma (por ejemplo “Rioja, La”) veréis que os lo importa en un nivel adicional (Nivel 2: “Rioja”, Nivel 3: “La”), es por eso que tenéis que vigilar de que no quede ninguna coma antes de guardar el Excel como .csv.
Y, ahora sí, estamos listos para importar. Vamos al servicio de metadados administrados, nos situamos en el Grupo donde queramos importar el Term Set, abrimos el menú desplegable con el botón derecho del ratón y seleccionamos “Import Term Set”
image
Seleccionamos el fichero .csv que hemos preparado, pulsamos OK…
image
… ¡¡Y listo!!
image
De esta forma podríamos ahorrarnos tener que teclear uno a uno los términos por el árbol de metadatos (Los datos iniciales del Excel podríamos obtenerlos de diversas fuentes externas sin necesidad de introducción manual).

Por cierto, si quisierais realizar la operación contraria (Exportar el árbol de metadatos a un fichero Excel para su revisión externa al servicio), tendríamos que realizar los pasos inversos. La exportación se debería realizar mediante PowerShell (curiosamente no hay un “export” en la SharePoint Interface), y luego sustituir las comas por puntos y coma desde el Notepad antes de abrirlo en Excel.

Y ya con esto… ¡¡Hasta la próxima!!

No hay comentarios: