none
Problema con sitio de Reserva de salas y recursos MOSS 2007 RRS feed

  • Pregunta

  • Hola, hace poco entré en una empresa de becario en la que utilizan MOSS 2007 y me pidieron que utilizase la plantilla de reservas de salas para la creación de tal sitio para el uso en la empresa. He estado probando e investigando sobre ello y cree una versión definitiva con lo que necesitábamos.

    El problema sé dónde está, pero no sé como solucionarlo. Mi problema es que tocando los permisos de las listas(Recursos, Reservas y Tipos de recurso) por separado, el webpart que viene en "Reservar un recurso" se desconfigura, se sigue reservando, queda registrado pero no sale la barrita morada. Al deshacer los cambios el fallo sigue y el webpart no funciona. Si creo un recurso nuevo ya no tengo ese problema, pero hay que cambiar manualmente todas las reservas ya hechas a unos nuevos recursos para que vuelva a funcionar. Esta solución no vale, ya que si vuelve a fallar en el futuro habría que cambiarlo otra vez todas las reservas a mano, porque no se puede (o no he dado con la posibilidad) de importar todos los datos masivamente.

    He visto que en la lista Reservas se crean dos elementos por reserva que se haga, uno el de la reserva normal y otro que crea internamente la lista pero que es visible con una vista determinada, al cambiar la reserva modificándola en caliente no se graba en el otro elemento y el webpart no lo toma como reserva, de hecho he llegado a crear dos reservas del mismo recurso el mismo día y a la misma hora sin que se quejase.

    ¿Hay alguna forma de solucionarlo? Podría mirarlo en el SharePoint Designer, pero no sé dónde está el código de la lógica interna de las listas. Me queda aun por ver el XSL del webpart para ver si ahí hay algo, pero sigo teniendo el problema de la importación de los datos ya existentes a los nuevos recursos funcionales.

    Espero que se me pueda ayudar en algo, hasta entonces un saludo.

    Muchas gracias.
    viernes, 22 de mayo de 2009 10:17

Respuestas

  • Hola darthcom y bienvenido al nuevo foro de desarrollo en MOSS.

    Tu problema tiene que ver con como está la implementación de la plantilla de reservas de resursos. Internamente usa dos listas para hacer las reservas: Recursos y Reservas. En Recursos al dar de alta un nuevo elemento se inicia un workflow oculto que crea muchas entradas en Reservas con ese recurso y con el campo oculto "Estado" puesto a "Disponible". En el momento de hacer una reserva, este campo se cambia a "Ocupado". Si el workflow no tiene los permisos necesarios, puede no hacer el trabajo bien.

    Que permisos les has puesto a esas listas?
    -- Edin http://edinkapic.blogspot.com
    • Marcado como respuesta darthcom miércoles, 27 de mayo de 2009 10:46
    viernes, 22 de mayo de 2009 11:25
    Moderador
  • Hola darthcom,

    Para ocultar la opción del menú de acciones tienes que crear una Feature de tipo HideCustomAction y con el mismo ID que la acción original. Es decir, en el fichero elements.xml deberías tener:

    <HideCustomAction GroupId="ActionsMenu" HideActionId="EditInGridButton"
     Id="HideEditInGridButton" Location="Microsoft.SharePoint.StandardMenu" />

    (más información sobre HideCustomAction aquí: http://msdn.microsoft.com/en-us/library/ms414790.aspx )

    Si esto no te funciona, también puedes ejecutar el siguiente JavaScript que oculta el botón "Editar en hoja de datos". Este JavaScript debería ir en una web part de editor de contenido o en un fichero JS externo.


    <script language="JavaScript" type="text/javascript">
    var elem = document.getElementsByTagName('ie:menuitem');
    for (var i = 0; i < elem.length; i++)
    {
    var myMenuItem = elem(i);
    if (myMenuItem.id.match('EditInGridButton') != null)
    {
    myMenuItem.hidden = true;
    }
    }
    </script>
    


    Un saludo,

    • Marcado como respuesta darthcom jueves, 28 de mayo de 2009 11:02
    miércoles, 27 de mayo de 2009 14:45
    Moderador

Todas las respuestas

  • Hola darthcom y bienvenido al nuevo foro de desarrollo en MOSS.

    Tu problema tiene que ver con como está la implementación de la plantilla de reservas de resursos. Internamente usa dos listas para hacer las reservas: Recursos y Reservas. En Recursos al dar de alta un nuevo elemento se inicia un workflow oculto que crea muchas entradas en Reservas con ese recurso y con el campo oculto "Estado" puesto a "Disponible". En el momento de hacer una reserva, este campo se cambia a "Ocupado". Si el workflow no tiene los permisos necesarios, puede no hacer el trabajo bien.

    Que permisos les has puesto a esas listas?
    -- Edin http://edinkapic.blogspot.com
    • Marcado como respuesta darthcom miércoles, 27 de mayo de 2009 10:46
    viernes, 22 de mayo de 2009 11:25
    Moderador
  • Hola Edin, antes que nada gracias por responder tan rápido.

    Precisamente en la pregunta que me has hecho está la solución, tenía la lista de reservas para que sólo se pudiesen modificar los elementos propios de cada usuario; así al hacer una reserva un usuario, la reserva interna no podía cambiar el "Estado" a "Ocupado" y fallaba el webpart.

    En principio el problema está solucionado, mi jefe aun quiere que hago otro nudo con la seguridad de las listas: como no se puede poner a esta lista permisos muy restrictivos quiere que haga algo para que los usuarios no modifiquen/eliminen elementos de otros. Lo he solucionado con las vistas de la lista, creando sólo dos vistas,"Mis reservas" y "Todos los elementos", en la cual no está el vínculo que lleva a la edición del elemento. Pero está el problema de la edición en hoja de datos, aquí puede borrar los elementos que quieran y de momento sólo he encontrado dos soluciones: por código(quitando del menú "Acciones" la edición en hoja de datos), que no sé muy bien cómo se hace y no estoy seguro de que funcione; o cambiando el archivo en el servidor(/_layouts/), que no veo seguro y no creo que me dejen tocar.

    Ya está funcionando la aplicación. Muchas gracias por la ayuda. Un saludo.
    miércoles, 27 de mayo de 2009 10:46
  • Hola darthcom,

    Para ocultar la opción del menú de acciones tienes que crear una Feature de tipo HideCustomAction y con el mismo ID que la acción original. Es decir, en el fichero elements.xml deberías tener:

    <HideCustomAction GroupId="ActionsMenu" HideActionId="EditInGridButton"
     Id="HideEditInGridButton" Location="Microsoft.SharePoint.StandardMenu" />

    (más información sobre HideCustomAction aquí: http://msdn.microsoft.com/en-us/library/ms414790.aspx )

    Si esto no te funciona, también puedes ejecutar el siguiente JavaScript que oculta el botón "Editar en hoja de datos". Este JavaScript debería ir en una web part de editor de contenido o en un fichero JS externo.


    <script language="JavaScript" type="text/javascript">
    var elem = document.getElementsByTagName('ie:menuitem');
    for (var i = 0; i < elem.length; i++)
    {
    var myMenuItem = elem(i);
    if (myMenuItem.id.match('EditInGridButton') != null)
    {
    myMenuItem.hidden = true;
    }
    }
    </script>
    


    Un saludo,

    • Marcado como respuesta darthcom jueves, 28 de mayo de 2009 11:02
    miércoles, 27 de mayo de 2009 14:45
    Moderador
  • Hola Erin,

    Muchas gracias otra vez. No me atrevo a tocar en el servidor, así que hice la otra opción que funciona perfectamente, sólo que hay que crear el editor web de contenido por vista existente, en este caso dos.

    Muchas gracias. Si tengo otro problema lo preguntaré.

    Un saludo.
    jueves, 28 de mayo de 2009 11:06