viernes, 17 de mayo de 2013

El antiguo caso de la página ha sido modificado desde que fue abierta en SharePoint 2007

Bueno recientemente en una migración de sitios hacia nuevas colecciones de sitios que se realizó para distribuir en diferentes bases de datos el contenido del portal de SharePoint, particularmente la colección de sitios primario donde se extrajo el contenido tenía algunas páginas de diseño o Page Layout de publicación personalizadas y a través de la herramienta disponible en SharePoint  (stsadm –o export | import, ya que en 2007 no hay los comandos que hay hoy en día en 2010 o 2013) y no de terceros que si pueden realizar la migración de una forma más limpia.

Por lo que utilizamos SharePoint Designer para realizar la copia de estos diseños, los cuales no fueron exitosos, tuvimos que crear unas páginas de diseño nuevas y allí copiar el contenido de las páginas originales para que funcionarán de nuevo en la nueva colección de sitios, y eso si nos funcionó para la creación de nuevas páginas, pero no para las que fueron migradas, por lo que se tuvo que ir al sitio de origen desacoplarla de la página de diseño y copiarla al nuevo sitio, créame fue un trabajo tedioso y largo, pero lo logramos terminar.

Pero luego al momento de editar la página, modificar el elemento web de editor de contenido Web nos mostraba el siguiente error:

This Page has been modified since you opened it. You must open the page again. 

Con lo cual nos daba un botón de refrescar la página y eso era todo, pero el usuario final no esta a gusto con ello por lo que tuvimos que buscar una alternativa, que nos costo encontrarla pero finalmente la hayamos y mis sincero agradecimiento para André Lage un colega MVP en SharePoint que contribuye con la comunidad también.

La solución de André  me funcionó de maravilla y es la siguiente:

1) Modificar la página maestra de la colección de sitios e incluir el código de java script siguiente, que define un método llamado removeOption(), estos escribirlo en la parte del Page head de la Master Page.

<script language=”javascript” type=”text/javascript”>

function removeOption() {

      if (document.getElementById("MSO_PageHashCode"))

{

      document.getElementById("MSO_PageHashCode").value="";

            }

}

</script>

2) Luego viene lo genial y es que se invoque cada ves que cargue la página en que navega el usuario.

"onload="javascript:if (typeof(_spBodyOnLoadWrapper) != 'undefined') { _spBodyOnLoadWrapper(); removeOption(); }"

Y eso es todo con ello anula el tedioso mensaje que aparece luego de editar el elemento Web Editor de contenido.

Hasta la próxima,

Juan Manuel Herrera Ocheita

No hay comentarios.: