none
Control de versiones Con Web Services RRS feed

  • Pregunta

  • Hola,

    Quiero añadir una funcionalidad para desde una aplicación cliente hacer un control de versiones de los documentos almacenados en SharePoint.

    En particular me interesa que, los cambios se almacenen bajo la misma versión hasta que el usuario decide subir la versión del documento.

    Es decir, no quiero que cada cambio que haga en un documento no se tome como una nueva versión hasta que yo lo desee.

    ¿Alguna idea?

     

    Gracias!!

    lunes, 26 de septiembre de 2011 15:20

Todas las respuestas

  • Hola,

    ¿No te sirve el uso de versiones menores y mayores que trae SharePoint en sí? Lo que hace es crear una versión menor hasta que el usuario decide que puede promocionar a versión mayor.

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    lunes, 26 de septiembre de 2011 15:42
  • Hola,

    Ya lo había tenido en cuenta pero lo que me interesaría sería permitir hacer cambios desde una aplicación cliente de SharePoint y al guardar los cambios se guardasen bajo la misma versión hasta que yo expresamente le indique que deseo subir la versión ¿esto sería posible?

    Otra opción que se adaptaría a lo que necesito y va en el hilo de tu sugerencia sería (corrégime si me equivoco) habilitar el versionado mayor y menor pero solo mostrar las mayores, ¿esto se puede hacer?..pero entonces...me surge la siguiente pregunta..el web Service de Versiones me devolvería todas las versiones (mayores y menores) y debería filtrar yo el xml..(esto último es porque en al aplicación cliente quiero a mostar las versiones mayores en un grid).

    Un saludo!

    lunes, 26 de septiembre de 2011 16:25
  • Hola Miguel

    como dice Juan Carlos, lo ideal es utilizar las dos versiones (menor y mayor) que tiene SharePoint por defecto. En la configuración de la bilbioteca, tienes una opción para que los usuarios que sólo tienen permisos de lectura SÓLO vean las versiones principales (1.0, 2.0, etc.) y no las borradores (0.1, 0.2, 1.1, 1.2)

     


    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin | MVP SharePoint Server
    lunes, 26 de septiembre de 2011 17:14
  • No es muy buena práctica "perder" el historial de versiones.

    Yo sugiero como te mencionaron Alberto y Juan Carlos que aproveches la funcionalidad OOB de Sharepoint, y manejes versiones menores y mayores, y configures los permisos de lectura sobre la Biblioteca.

    Saludos.-


    Marcos Alan Turrós - Microsoft Certified Technology Specialist
    lunes, 26 de septiembre de 2011 19:53
  • Hola,

    Realmente no está perdiendo las versiones, lo que quiere es tener siempre una única versión menor...Miguel, se me ocurre que quizás te podría servir el hecho que puedes limitar el número de versiones menores que se puedan crear a nivel de configuración de documento...no estoy seguro de que se pueda hacer, si que es cierto que podemos limitar el número de versiones principales y los borradores para las mismas, pero no sé si se puede limitar el número de versiones secundarias.

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    lunes, 26 de septiembre de 2011 20:11
  • Hola,

    Si, yo creo que manajendo versiones menores como estais comentando y gestionando los permisos adecuados se ajustaría a lo que busco pero faltaría la funcionalidad de que el usuario decidiese "ahora subo la version a mayor".

    Juan Carlos creo que podemos limitar el numero de versiones mayores, y el numero de estas versiones que que mantendran borradores (versiones secundarias, o drafts). Pero no podemos decir 6 borradores por cada versión mayor. De todas las formas esta carácterística no aporta la idea que sigo yo: La de que el usuario pueda decidir: Ahora subo la versión.

    Al guardar una edición en word o excel se me debería de preguntar (teniendo el versionado mayor y menor activado) si lo quiero guardar como borrador o como versión mayor, pero esto no se me pregunta. ¿Tenéis idea de por qué? Esto si que se adaptaría bastante a lo que busco. ¿Tambien se tiene esta funcionalidd de decidir el tipo de vesión al guardar para un formato .txt?

     

     

    Un saludo!

    martes, 27 de septiembre de 2011 8:01
  • Hola Miguel,

    me temo que no. Siempre que guardas se genera una versión borrador. El usuario tiene que ir a SharePoint y decidir si publicar la versión superior de la borrador actual.

     


    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin | MVP SharePoint Server
    martes, 27 de septiembre de 2011 8:05
  • Hola,

    ¿Esa funcionalidad estaba activa en MOSS 2007 no? Lo estuve observando en:

    http://geeks.ms/blogs/ciin/archive/2007/07/11/versionado-de-documentos-en-sharepoint-services-2007.aspx

    He observado que el servicio de Versiones que nos proporciona MOSS no nos permite hacer el "Publish a major version", por lo tanto desde cliente necesitaría implementar la operación de "Publish a Major version" por mi mismo.

    Veo lógico que un usuario con permisos adecuados fuese capaz de "subir una versión" desde cliente (esto no es posible actualmente con web services).

    Entonces, corregidme si me equivoco, toda modificación de un fichero realizada desde un cliente de Sharepoint implica una subida de versión por parte del servidor de la versión del documento (ya sea mayor o menor y visible o no visible según permisos) al pulsar el diskette de guardado en Word o Excel.

    ¿Alguna sugerencia?

     

    Gracias!!

     

     

    martes, 27 de septiembre de 2011 8:58
  • Hola,

    La funcionalidad de versionado de SharePoint 2010 es la misma que en SharePoint 2007, no ha habido cambios en este sentido que yo sepa...¿estás trabajando con SharePoint 2007? Creo que sí por lo que comentabas en algún otro thread...lo que yo haría es crear un servicio web personalizado que tire del modelo de objetos de SharePoint que si te da mayor control sobre las versiones...este servicio publicado en tu SharePoint es el que utilizárias en tu aplicación en cliente.

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    martes, 27 de septiembre de 2011 9:53
  • Hola Juan Carlos,

    Estoy trabajando con SharePoint 2010, voy a estudiar esa posibilidad. ¿El modelo de objetos me permitiría crear un web service que subiese de versión cuando yo lo crea conveniente y  que mantuviera una dada si yo lo deseo?Si es así me vendría muy bien.

    El problema es que tendría que tener en cuenta que uso WebDav para la edición en línea y este protocolo "esconde" la actualización del documento.

    Un saludo!

     

    martes, 27 de septiembre de 2011 10:08
  • Hola de nuevo Miguel,

    Una pregunta, si estás trabajando con SharePoint 2010: ¿Por qué has recurrido a los servicios web cuando tienes  el MO en cliente o la API REST?

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    martes, 27 de septiembre de 2011 10:35
  • Hola Juan Carlos,

    Optamos por WS porque el gestor documental queremos integrarlo con escritorio y web. El problema es que escritorio tenemos FrameWork 2.0 y no lo podemos subir y tengo entendido que para MO cliente es necesario 3.5 o superior .

    Por otro lado, API REST no sé si nos es útil con estas limitaciones y si puesto en una balanza es mejor.

    Tenía entendido que WS era más completo de MO en cliente y que este último le aventajaba en eficiencia.

    No sé si merece la pena cambiar de API solo por el tema del versionado de Docs y si el MO cliente me permitiría conseguir la funcionalidad que busco mencionada en este hilo.

    ¿Algún consejo?

    martes, 27 de septiembre de 2011 11:36
  • Hola Miguel,

    Pues es una pena que no podáis subir de versión de Framework, porque el MO en cliente surge para evitar que tengas que crearte un servicio web cada vez que necesitas una funcionalidad que no te dan los servicios web convencionales de SharePoint...el MO en cliente tiene tres sabores: Silverlight, .NET y JavaScript...quizás el sabor Silverlight ejecutado out of browser te podría servir para superar la limitación del Framework que tienes, aunque habría que probarlo.

    En cuanto a API REST, sería casi peor ya que necesitarías Framework 4 para trabajar con la última versión...lo bueno que tiene es que trabajas en el mundo de LINQ para la gestión de listas y bibliotecas.

     

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    martes, 27 de septiembre de 2011 11:52
  • Hola Juan Carlos,

    Es una pena pero no podemos subir la versión de escritorio. Entonces, si quiero conseguir una funcionalidad que no me la dé WS tendré que crearme un WS personalizado no? No sé si me puedes facilitar algún enlace interesante sobre esto último para documentarme.

     

    Un saludo!



    martes, 27 de septiembre de 2011 14:20
  • Hola,

    Pues si, sin poder subir la versión de Framework no te queda otra...te paso un ejemplo: http://moustafa-arafa.blogspot.com/2010/02/sharepoint-tip-creating-custom-web.html

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    martes, 27 de septiembre de 2011 15:16
  • Hola de nuevo,

    Entonces, si quiero implementar la funcionalidad desde una aplicación cliente de  "Subir de versión" (con las versiones mayores y menores activadas) que es la que se consigue en la interfaz gráfica de Sharepoint en el combo de  un documento;Con web Services (lo que se nos dá "de serie") no es posible no?

    Opciones que tengo:

    1.- Web Service personalizado con el MO cliente.

    2.- Directamente programarme un método que consigue esa funcionalidad con el MO cliente ( con el FrameWork requerido).

    ...

    ¿Hay alguna más? ¿Con total seguridad el MO cliente me dará el control necesario como para implementar lo que busco?

     

    Muchas gracias!!!!

    jueves, 29 de septiembre de 2011 12:20
  • Hola de nuevo,

    Entonces, si quiero implementar la funcionalidad desde una aplicación cliente de  "Subir de versión" (con las versiones mayores y menores activadas) que es la que se consigue en la interfaz gráfica de Sharepoint en el combo de  un documento;Con web Services (lo que se nos dá "de serie") no es posible no?

    Opciones que tengo:

    1.- Web Service personalizado con el MO cliente.

    2.- Directamente programarme un método que consigue esa funcionalidad con el MO cliente ( con el FrameWork requerido).

    ...

    ¿Hay alguna más? ¿Con total seguridad el MO cliente me dará el control necesario como para implementar lo que busco?

     

    Muchas gracias!!!!


    Una duda...un usuario que solo tiene permisos para ver las versiones mayores (el servidor con versiones mayores y menores activadas)...si edita el documento..¿Se guarda como una versión menor y por lo tanto no ve sus propios cambios?

    Si no es así y se guarda como mayor...¿Qué sucede con las los cambios de las versiones menores que había?

    jueves, 29 de septiembre de 2011 12:25
  • Hola Miguel,

    Si vas a publicar un servicio web en SharePoint, la idea es que lo hagas en el frontal por lo que puedes usar el MO de servidor...respecto a la pregunta que haces de las versiones:

    • Si el usuario solo puede ver versiones mayores, no debería poder editar el documento y generar versiones borrador...es un tanto contraproducente. Lo que tendrás son usuarios lectores que ven las versiones mayores, pero no pueden crear versiones menores o mayores.
    • En cambio, los usuarios colaboradores verán versiones menores siempre y son los que deciden cuando promocionarlos a versiones mayores.
    • Si se genera una versión mayor, las versiones borrador desaparecen de la biblioteca.

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    jueves, 29 de septiembre de 2011 20:17
  • Hola Juan Carlos,

     

    Muchas gracias por responder. Comprendo el comportamiento

    Entonces el problema está en que no hay un Web Service que nos da la funcionalidad de  promocionar la version o subir la versión no? Esta funcionalidad tenemos que creárnosla.

    ¿Es posible abrir un documento de una versión anterior a la última para visualizarlo?

     

     

    Muchas gracias!

    viernes, 30 de septiembre de 2011 7:18
  • Hola,

    Pues no he mirado los WebServices en detalle, pero pueder ser que no dispongas de un método para hacer lo que necesitas...te recomendaría que lo revisases. Respecto a abrir una versión anterior de documento, desde la interfaz de usuario se puede hacer así que la respuesta es que de algún modo lo tienes que poder conseguir desde la aplicacón cliente que estás construyendo. De nuevo dos opciones:

    • Ver si los servicios web existentes te dan un método para esto.
    • O bien implementarlo tu mismo.

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------
    viernes, 30 de septiembre de 2011 7:27