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 =G...

O365 - Forms - Transferir la propiedad de un formulario

Fuente :  https://support.office.com/es-es/article/transferir-la-propiedad-de-un-formulario-921a6361-a4e5-44ea-bce9-c4ed63aa54b4 Si ha creado una encuesta, una prueba o un sondeo, puede moverlos fácilmente a un grupo para que todos los miembros del grupo se conviertan en propietarios de ese formulario. Transferir el formulario a un grupo En el explorador Web, vaya a  Forms.Office.com . En la pestaña  mis formularios  , busque el formulario que desea transferir. Haga clic en  más acciones de formulario    y, a continuación, seleccione  mover . Nota:  Solo puede mover el formulario si es el propietario de ese formulario. No puede transferir la propiedad de un formulario que está compartido con usted. Seleccione el grupo al que desea transferir el formulario y, a continuación, haga clic en  mover . El formulario que ha movido aparecerá en la pestaña  formularios de grupo  . ¿Qué ocurre con el libr...

Event ID 8031 The uri endpoint information may be stale

An exception occurred while updating addresses for connected app {6783ce5e-c88h-4021-8d5b-12614875cbfa_b79f19ab-1d40-4824-9911-3466cf8b070a}. The uri endpoint information may be stale. System.InvalidOperationException: The requested application could not be found.    at Microsoft.SharePoint.SPTopologyWebServiceApplicationProxy.ProcessCommonExceptions(Uri endpointAddress, String operationName, Exception ex, SPServiceLoadBalancerContext context)    at Microsoft.SharePoint.SPTopologyWebServiceApplicationProxy.ExecuteOnChannel(String operationName, CodeBlock codeBlock)    at Microsoft.SharePoint.SPTopologyWebServiceApplicationProxy.GetEndPoints(Guid serviceId)    at Microsoft.SharePoint.SPConnectedServiceApplicationAddressesRefreshJob.Execute(Guid targetInstanceId) After de-commissioning some SharePoint servers, you might notice the above error on other WFEs /Application server’s event viewer . It appears that the SharePoint still has a reference...