Mostrando entradas con la etiqueta LIST LINK CORRUPTION. Mostrar todas las entradas
Mostrando entradas con la etiqueta LIST LINK CORRUPTION. Mostrar todas las entradas

martes, 19 de mayo de 2009

Reparación de Supporting Files: "Las alertas de Sharepoint No funcionan" e "Invalid page URL"

Síntomas:
Tenemos el formulario personalizado listo y funcionando... pero de repente, cuando vamos a utilizar el servicio de alertas de sharepoint, este no funciona.
Arrojando el mensaje "Error Inesperado" al intentar suscribirnos a una alerta.

La opción de Nuevo, Visualizar o Editar elementos de lista, producen errores "Invalid page URL"
Causa:
Que las alertas no funcionen esta relacionado con los mensajes "Invalid page URL:" al crear un newListitem o el error "An unexpected error has occurred" cuando hacemos click la edición de un listItem
ambos se producen al corromper una lista de sharepoint ya que las SupportingFiles quedan desconfiguradas.
El problema ocurre al personalizar una pagina ASPX como editform o newform, porque hemos borrado el ListFormWebPart que viene por defecto.

Procedimiento correcto de personalización (Oficial):
Si quieres personalizar los controles que a aparecen en newForm.aspx, y no quieres mostrar el list Form Webpart que aparece por defecto, podemos ocultarlo en lugar de borrarlo siguiendo estos pasos.


  1. Iniciar Sharepoint Designer 2007y abrir la pagina NewForm.aspx de la lista.
  2. Pulsar el Botón Derecho sobre el List Form Web Part, y después pulsar Web Part Properties.
  3. Expandir Layout, hacer click para seleccionar checkbox Hidden , y finalmente pulsar OK.
Procedimiento para Reparar una pagina o lista ya estropeada:
El procedimiento antiguo era... borrar la lista y crearla de nuevo para personalizarla posteriormente usando el procedimiento, pero hay otra alternativa.

1. Abrir las páginas NewForm.aspx, EditForm.aspx y ViewForm.aspx en Sharepoint Designer

2. Localizar el tag <WebPartPages:WebPartZone runat="server" FrameType="None" ID="Main" Title="loc:Main"><ZoneTemplate> en la pagina Estropeada

3. Pegar entre los tags <ZoneTemplate> pegar aquí </ZoneTemplate>
este código :

<WebPartPages:ListFormWebPart runat="server" __MarkupType="xmlmarkup" WebPart="true" __WebPartId="{MI NUEVO GUID GENERADO}" >
<WebPart xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/WebPart/v2">
<Title>NOMBRE DE LISTA</Title>
<FrameType>None</FrameType>
<Description /> <IsIncluded>true</IsIncluded>
<PartOrder>1</PartOrder>
<FrameState>Normal</FrameState> <Height /> <Width />
<AllowRemove>true</AllowRemove> <AllowZoneChange>true</AllowZoneChange>
<AllowMinimize>true</AllowMinimize>
<AllowConnect>true</AllowConnect>
<AllowEdit>true</AllowEdit> <AllowHide>true</AllowHide>
<IsVisible>false</IsVisible> <DetailLink /> <HelpLink />
<HelpMode>Modeless</HelpMode>
<Dir>Default</Dir> <PartImageSmall /> <MissingAssembly>Cannot import this Web Part.</MissingAssembly>
<PartImageLarge /> <IsIncludedFilter />
<ExportControlledProperties>true</ExportControlledProperties>
<ListName xmlns="http://schemas.microsoft.com/WebPart/v2/ListForm">{MI GUID DE LA LISTA SHAREPOINT}</ListName>
<ListItemId xmlns="http://schemas.microsoft.com/WebPart/v2/ListForm">0</ListItemId>
<ControlMode xmlns="http://schemas.microsoft.com/WebPart/v2/ListForm">Edit</ControlMode> <TemplateName xmlns="http://schemas.microsoft.com/WebPart/v2/ListForm">ListForm</TemplateName> <FormType xmlns="http://schemas.microsoft.com/WebPart/v2/ListForm">6</FormType>
<ViewFlag xmlns="http://schemas.microsoft.com/WebPart/v2/ListForm">1048576</ViewFlag>
<ID>g_MI_NUEVO_GUID_REEMPLAZANDO_GUIONES_POR_GUIONES_BAJOS</ID> </WebPart>
</WebPartPages:ListFormWebPart>

4. En la línea <ControlMode si la pagina es :
- EditForm hay que poner Edit
- NewForm hay que poner New
- DispForm hay que poner Display

5. En la linea <FormType si la pagina es :
- EditForm hay que poner 6
- NewForm hay que poner 8
- DispForm hay que poner 4

6. En la línea <ListName hay que poner el GUID de la lista sharepoint que estamos reparando. Cambiar también <Title poniendo el nombre de la lista.

(Se puede obtener en el sitio de sharepoint personalizando la lista o en "Site Settings > Site Libraries and Lists" mirando el LINK de customize de la lista en cuestión aparece el GUID, con botón derecho del ratón y copiar acceso directo )
La linea quedaría así :
<ListName xmlns="htp://schemas.microsoft.com/WebPart/v2/ListForm">{046F5668-1891-4781-9B44-90AC0C0B600A}</ListName>

7. Generar un nuevo GUID con guidgen.exe o usando la página :http://www.somacon.com/p113.php

8. En la línea <ID poner el GUID nuevo reemplazando los guiones por guiones bajos, dejando un "g_" al principio.
Ejemplo: El GUID es 870850be-fd2c-44d6-818e-ab2914fb2d71 y quedaría así g_870850be_fd2c_44d6_818e_ab2914fb2d71
Quedando así: <ID>g_870850be_fd2c_44d6_818e_ab2914fb2d71</ID>

9. Guardar (No recomiendo guardar antes), es posible que haya que cerrar y abrir la pagina para ver el resultado de la reparación.

10. Repetir la operación para las Páginas NewForm.aspx , EditForm.aspx, DispForm.aspx y todos los vínculos de supporting Files quedaran reparados.

En este punto, habremos reparado la lista, las Alertas y RSS, la acción de Nuevo, Editar y Visualizar por lo que
TODO Funcionaría Correctamente.

Fuente Orientativa (Mirar PostComment): http://blogs.msdn.com/dszabo/archive/2007/02/20/custom-list-newform-aspx-ruined-in-wss-3-0.aspx

He cambiado algunas cosas del procedimiento original para que sea más fácil con un Copy-Paste

Asi quedarían las supporting Files Antes y Después.


Espero os sea de utilidad, saludos a todos.
RobertoMarcos.com

lunes, 23 de marzo de 2009

Como corromper los vínculos de una lista de sharepoint, facil facil

Esto es un aviso para todos,

Sharepoint designer ya es bastante inestable, pero si probamos a renombrar una pagina ASPX de edición de lista, nuevo o visualización para personalizar la página en cuestión..... puede parecer que ha funcionado, si piensas que renombrando una página y poniendo de nuevo el mismo nombre de archivo va a funcionar, lo llevas claro.

Al realizar esto(Renombrar el archivo), lo que obtenemos, es una lista corrupta, si entramos en la página de propiedades de la lista en la pestaña de Supporting Files, que curiosamente es la que tiene los vínculos para que la TOOLBAR de sharepoint, osea que nos la hemos cargado.... a veces dando a browse se puede arreglar, pero .... muy pocas veces. Un buen infierno rico rico.

Al pulsar en el toolBar >NEW saldra un mensaje de URL ERROR, eso significa que efectivamente la hemos corrompido bien, justo lo que necesitamos.....


Para que esto no nos ocurra os pongo este Procedimiento recomendado para customización

1º Copiar la pagina con Copy and Paste
2º Editar la copia y probar la customizacion guardando
3º Seleccionar todo el CÓDIGO, y copiar
4º Hacer CheckOut del archivo EditForm.aspx, viewForm.aspx o el que sea.
5º Abrir EditForm.aspx,ViewForm.aspx o el que sea
6º Seleccionar todo el CÓDIGO y pegar.
7º Hacer CheckIn (a veces da unos mensajes de error en este paso, que se solucionan poniendo el foco en la FolderList del website y pulsando F5 , no he encontrado explicación al BUG)


Esta es una lista sin corromper los vínculos.