domingo, 17 de noviembre de 2013

Cómo resolver el problema de importar un sitio con diferente plantilla utilizando import-spweb

Este caso pueda ser poco usual pero pasa, a continuación explico el caso:

Se ha migrado el contenido de SharePoint 2010 a 2013 y luego se desea migrar un sitio hacia otra colección de sitios, pero el sitio que se desea migrar esta utilizando una plantilla que ya no es soportada en la versión 2013 de SharePoint, entonces cómo resolver este problema?.

Primero debes decir que para migrar un sitio de una colección de sitios a otra utilizamos la línea de comando export-SPWeb.  Para ello ejecutamos image SharePoint Management Shell  y ejecutamos una línea de comando parecida a esta:

PS c:\> export-SPWeb –Identity http://hostname/susitio –path “c:\temp\subsitio.cmp” –IncludeUserSecurity -IncludeVersions All

Luego intentamos crear un sub-sitio donde deseamos importar el contenido exportado, pero como no existe la plantilla podemos intentar crear un sitio con la plantilla de equipo por ejemplo.

Finalmente intentamos importar el contenido con una línea de comando similiar a la siguiente:

PS C:\> import-spweb –identity “http://nuevoservidor/sitios/nuevaCollecion/NuevoSubsitio" -path "c:\temp\subsitio.cmp" -IncludeUserSecurity -ActivateSolutions

Al ejecutar este comando nos muestra el siguiente mensaje de error:

import-spweb : Cannot import site. The exported site is based on the template
STS#2 but the destination site is based on the template STS#0. You can import
sites only into sites that are based on same template as the exported site.

La Solución

Eliminar el sitio creado y ahora vamos a crear un sitio desde línea de comando de la siguiente formar:

PS C:\> new-SPWeb -url http://nuevoservidor/sitios/nuevaCollecion/NuevoSubsitio -name "Nuevo Sitio" -template
STS#02 -UseParentTopNav -UniquePermissions

Al ejecutar la línea de comando nos mostrará el siguiente mensaje:

WARNING: Template is not found and is not applied.

Url
---
http://nuevoservidor/sitios/nuevaCollecion/NuevoSubsitio

No se preocupe este error nos ayudará ya que no aplicará ninguna plantilla y esto permitirá que utilice la plantilla del contenido importado.  O bien no incluir el parámetro –template y esto tendrá el mismo efecto.

Especifica la plantilla web para el nuevo sitio. La plantilla ya debe existir. Si no se especifica ninguna plantilla, no se aplica ninguna plantilla y se puede seleccionar más adelante.

Ahora ejecutamos de nuevo la línea de comando import-SPWeb.

PS C:\> import-spweb –identity “http://nuevoservidor/sitios/nuevaCollecion/NuevoSubsitio" -path r"c:\atemp\subsitio.cmp" -IncludeUserSecurity -ActivateSolutions

Log file generated:
        c:\temp\subsitio.cmp.import.log

Listo ya pudo importar el contenido de una plantilla no soportada en SharePoint 2013.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

martes, 5 de noviembre de 2013

Error Reporte RDL en SharePoint 2010 no despliega información o Type Sys.UI._Timer has already been registered

Este error no se manifiesta tan evidente ya que el navegador de IE 9, 10 no hará nada y por ende no mostrará la generación del reporte y es más funcionará para algunos usuarios y para otros no.

Si utilizamos las herramientas de desarrollador de IE presionando F12 desde IE en la pestaña de scripts podremos ver el siguiente detalle de error:

SCRIPT5022: Sys.InvalidOperationException: Type Sys.UI._Timer has already been registered. The type may be defined multiple times or the script file that defines it may have already been loaded. A possible cause is a change of settings during a partial update.
ScriptResource.axd?d=kPNVqg5Xk2xEHmG9iUkh6gb4nTjKg44qXODEnWnCK3WXpZEBMHocVoBFio19AkZm6XU5yigeZoGe2mg4Dmaq7JxvAk32sogRfD7ud5cTh5dVgp3pyap8Pqc2L3Eym8bxal5ATKCkLJDjXVUmA4sIWOvkUKp9Hs0UVf8fZ2TfizcKCAGb0&t=33137d1a

Gracias a Natalia Tsymbalenko por su solución con la pudimos resolver el problema:

http://sharing-the-experience.blogspot.com/2012/04/rsviewerpageaspx-type-sysuitimer-has.html

Lo único que quisiera agregar especialmente para usuarios no familiarizados con la estructura de SharePoint es que el web.config a modificar es de la Applicación Web donde esta el reporte instalado.  Una instalación de SharePoint puede contar con varias aplicaciones Web y no solo con una así que debe de validarse cual es la que debemos de modificar. 

Para ello puede ir al Servidor de SharePoint al IIS Manager y podrá ubicar la ruta de la aplicación Web de reportes:

image

Por ejemplo de forma predeterminada cuando creamos una aplicación web desde SharePoint esta la crea en la ubicación predeterminada del IIS que normalmente es c:\inetpub\wwwrooot\wss\VirtualDirectories y dentro de este directorio un directorio por cada aplicación Web por lo menos encontrará dos una del Central Administration y otra de la aplicación Web del portal. 

Y finalmente dentro de ese directorio encontrará el archivo de configuración web.config.  En la sección compilation batch verificar que el debug=”false” si esta activado debug=”true” cambielo a false y listo el así como vino desaparece.

<globalization fileEncoding="utf-8" />
<compilation batch="false" debug="false">
     <assemblies>
       <add assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
       <add assembly="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add assembly="Microsoft.SharePoint.Search, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add assembly="Microsoft.Office.Access.Server.UI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add assembly="Microsoft.Office.Access.Services.UI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add assembly="Microsoft.SharePoint.Publishing, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
       <add assembly="Microsoft.Office.Server.Search, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
     </assemblies>
  …

</compilation>
 
Y ahora puede ejecutar los reportes desde IE 9 o 10 si este problema.

SharePoint4Fun,

Juan Manuel Herrera Ocheita

sábado, 2 de noviembre de 2013

Error al intentar consultar historial de versiones en SharePoint 2010

Este es uno de los errores que ha acompañado a SharePoint desde 2007 y en 2010 no ha sido la excepción.   Si el problema es general en las bibliotecas puede intentar instalar la actualización de Abril del 2013 que registra el problema y su corrección.

Pero si no le funciona puede validar si esta solución que abajo describo puede resolver su problema.

Primero el error que muestra es el siguiente:

image

Si verificamos el error en los logs de SharePoint encontraremos el siguiente detalle:

Unexpected      System.NullReferenceException: Object reference not set to an instance of an object.    at ASP._layouts_versions_aspx.__Render__control14(HtmlTextWriter __w, Control parameterContainer)     at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)     at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)     at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)     at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)     at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)     at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)     at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer)     ...  1ee23f45-af8f-4521-a190-3b795d3fdda4

El error en detalle describe que el error se debe a que esta esperando un objeto en memoria al cual no esta instanciado.  Es decir hace referencia de un objeto que esta ausente en ese momento.

Para esta solución utilizaremos SharePoint Designer 2010 para resolverlo.  Abrimos el sitio donde están las bibliotecas con el error y luego en la pestaña de navegación seleccionamos la opción “Todos los archivos”

image

Luego seleccionamos en la biblioteca con el error

image

Luego seleccionamos la carpeta Forms

image

Luego seleccionamos la página DispForm.aspx, presionamos el botón derecho para que levante el menú contextual y seleccione la opción Eliminar (para que luego podamos crearla de nuevo)

image

Ahora seleccionamos la opción Listas y bibliotecas de la sección Navegación.   

image

Luego seleccionamos nuevamente la biblioteca con error

image

Luego en la sección formularios presionamos el botón Nuevo

image

En el nombre del archivo escriba DispForm y luego presiona el botón Aceptar

image

Como resultado deberíamos observar que ya esta la página dentro de la sección Formularios.

image

Ahora si consultamos el historial de versiones nos debería mostrar una ventana similar a esta.

image

Eso es todo amigos nos vemos hasta la próxima.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita