Ir al contenido principal

Migrar lista de Sharepoint 2007 a lista de Sharepoint 2010

 

Recientemente me he visto en la obligación de tener que migrar una lista con datos sensibles de una instalación en Sharepoint 2007 a una instalación nueva en Sharepoint 2010.

Bien, primero un poco de teoría, después explicaré en profundidad y con detalle la práctica.

Después de dar muchas vueltas por Internet y no encontrar información al respecto, he descubierto las siguientes verdades a medida que he intentado métodos para pasar los datos:

Las exportaciones de listas (*.STP) de SP2007 no son compatibles con SP2010. Es decir, no se puede importar y exportar y listo.

El SPMetal de SP2010 no genera las clases de un site de SP2007. Es decir, no se puede utilizar LINQ desde VS2010 para hacer un proceso o un webpart que haga la importación.

Sí se puede conectar al WebService de SP2007 (http://TuServidor/sites/TuSubSite/_vti_bin/Lists.asmx) desde VS2010 y utilizar los métodos de que dispone el servicio para obtener los datos, guardarlos en colecciones y después subirlos, o bien con las clases que sí tenemos disponibles para SP2010 (SPList, SPListItem) o bien conectar al WebService de SP2010 para utilizar REST y guardar los datos.

Cuando llevaba un buen rato implementando este sistema, no sé por qué, he pensado en la manía de Microsoft en cambiar las extensiones de los archivos (p.ej. los docx en realidad son .zip, los swp en realidad son .cab, etc) y he mirado, por curiosidad, el stp que he exportado de SP2007: ¡Eureka! También es un .cab.

Bien, pues resulta que, al descomprimirlo, sólo contiene un archivo y se llama “manifest.xml”. Pues lo he mirado por dentro y tiene un tag bastante indicativo:

<ProductVersion>3</ProductVersion>

Y digo, bueno, ¿realmente sería suficiente con cambiar la versión para que lo lea SP2010? Pues sí, efectivamente. He cambiado la versión, he vuelto a empaquetarlo como .cab y le he cambiado la extensión otra vez a .stp y esta vez sí me ha permitido SP2010 importarlo.

¿Fácil no? Bueno, pues sí, el resultado final es muy fácil.

Vamos con la práctica completa:

1.- Exportar la lista de SP2007.

Entrar en la edición de la lista de Sharepoint 2007 y buscar la opción “Save document library as template”:

sp2007capture1

Aparecerá la siguiente pantalla. En ella, recordar CHEQUEAR la opción de incluir contenido, si no, el trabajo no sirve de nada:

sp2007capture2

Al archivo generado, digamos, “wikipages.stp”, cambiarle la extensión por “.cab”:

sp2007capture3

Ahora podemos extraer el contenido del archivo con, por ejemplo Winrar:

sp2007capture4

Una vez descomprimido, ya podemos editar el archivo extraido con, por ejemplo, el Notepad:

sp2007capture5

Donde decía

<ProductVersion>3</ProductVersion>

Lo modificamos y ponemos

<ProductVersion>4</ProductVersion>

y lo guardamos.

Por cierto, ¿¿¿veis que pone <Language>1033</Language>??? Bien, pues nos dice que la lista se ha creado en inglés EEUU. Si el idioma base del site donde intenteis importarlo no es el mismo, seguramente tendreis problemas.

Bueno, pues ya tenemos casi todo hecho. El siguiente paso es volver a crear el .cab, lo hacemos con la utilidad del S.O. para ello:

sp2007capture6

Después lo renombramos a la extensión .stp:

sp2007capture7

Y ya podemos irnos a SP2010 a importar la plantilla, para ello entramos en las opciones del Site:

sp2010capture8

Y vamos a la opción List templates:

sp2010capture9

Y, en la opción del Ribbon “Documents”, seleccionamos a través de Upload Document, el archivo WikiPages2010.stp.

Nos aparecerá en la lista y sólo nos queda seleccionarlo y activarlo.

Ya está. Sí, seguro, ya está. Ya podemos crear nuestra lista basada en este Template List y nos la creará con todo el contenido.

 

Fuente: http://serpoint.wordpress.com/2010/12/10/migrar-lista-de-sharepoint-2007-a-lista-de-sharepoint-2010/

Comentarios

Entradas populares de este blog

Get SharePoint Online Site and SubSites permission using PowerShell

The below PowerShell script retrieves the following for the given SharePoint Online Site All the Sub-site's URL Security group attached with each Sub-site with their permission level Prerequisites: This PowerShell script uses the latest version of SharePoint Online PnP Module. Download the installer from https://github.com/SharePoint/PnP-PowerShell/releases  Install-Module SharePointPnPPowerShellOnline  Install-Module - Name ' SharePointPnP.PowerShell.Commands.Files.Recurse ' function  connect - site( $webs , $creds ){    Connect - PNPonline  - Url  $webs   - Credentials  $cred     }    function  get - sitepermission( $web , $cred ){    $rec =@()    connect - site  - webs  $web   - creds  $cred     if ( $web   - eq  $parentsitename )  {  #Write-Host "Parent site permission" $web   $Pgroups =Get - PNPGroup  foreach ( $Pgroup   in   $Pgroups )  {  $DLGP  =  ""   |   Select   "SiteUrl" , "GroupName" , "Permiss

Find and Delete Orphaned Users in SharePoint

Fuente: http://www.sharepointdiary.com/2012/09/find-and-delete-orphaned-users-in-sharepoint.html Orphaned User? Who are they? Orphaned users are those who have been disabled/removed from Active Directory, but still have permissions to sites, lists and items. Internally, SharePoint keeps them in " UserInfo " table of the content database for meta-data such as created/modified by fields. Its unavoidable in any organization where employees constantly on-boarding and off-boarding. Its really difficult to manage, when it comes to thousands of sub-sites, sites, libraries and lists with their own sets of permissions. Why we care about Orphaned users? It is a best practice to delete orphaned users to keep the farm clean & organized. Also this will solve the problem of deleted active directory users still appearing on the people picker which was discussed here  People Picker not showing users from Active Directory? . If you know the user base or criteria then you can use: Clea

Conexión desde casa a una VPN sin perder salida a internet

Solución, asumiendo que estas en Windows: Panel de Control, Conexiones de Red. Clic derecho en la VPN, dale a propiedades. Anda a la pestaña de "Funciones de Red" y selecciona Protocolo Internet TCP/IP y clic en el botón "Propiedades". Ahora hazle clic al botón "Opciones Avanzadas..."En la pestaña "General", desmarca la opción que dice "Usar la puerta de enlace predeterminada en la red remota". Dale a aceptar a todas las ventanitas de opción, y ahora conéctate a la VPN nuevamente. Con eso deberías entrar a la VPN sin perder la conexión local de tu red e internet.