Pregunta

Como medida provisional hasta que todos los diseñadores estén en su lugar, actualmente estamos trabajando manualmente en un montón de archivos de configuración xml.Uno de los problemas con esto es el control de versiones de archivos porque las personas se olvidan de actualizar los números de versión cuando actualizan los archivos (lo cual es de esperarse ya que los humanos generalmente apestan en la perfección).

Por lo tanto, supongo que a medida que almacenamos los archivos en Sharepoint debería poder escribir un script para extraer los archivos de Sharepoint, obtener el número de versión e ingresar/actualizar automáticamente el número de versión de Sharepoint en el archivo.Esto significa que cuando alguien quiere los archivos "más recientes", puede ejecutar el script y obtener los archivos más recientes con los números de versión correctos (hay un poco más que esto, por lo que la razón para usar el script no es solo el beneficio de la auto- versiones).

¿Alguien sabe cómo obtener los archivos + números de versión de Sharepoint?

¿Fue útil?

Solución

Hay una manera de hacerlo a través de servicios web, pero he hecho más implementando controladores de eventos personalizados.Aquí hay un poco de código que hará lo que quieras.Tenga en cuenta que solo puede ejecutar esto desde el servidor, por lo que es posible que desee incluirlo en un servicio web para permitir el acceso desde sus dispositivos integrados.Además, deberá hacer referencia a Microsoft.SharePoint.dll en este código.

using (SPSite site = new SPSite("http://yoursitename/subsite"))
{
    using (SPWeb web = site.OpenWeb())
    {
        SPListItemCollection list = web.Lists["MyDocumentLibrary"].GetItems(new SPQuery());
        foreach(SPListItem itm in list) {
            Stream inStream = itm.File.OpenBinaryStream();
            XmlTextReader reader = new XmlTextReader(inStream);
            XmlDocument xd = new XmlDocument();
            xd.Load(reader);
            //from here you can read whatever XML node that contains your version info
            reader.Close();
            inStream.Close();
        }
    }
}

Las declaraciones usando() sirven para garantizar que no se cree una pérdida de memoria, ya que SPSite y SPWeb son objetos no administrados.

Editar:Si el número de versión ha sido ascendido a un campo de biblioteca, puede acceder a él de la siguiente manera dentro del bucle for anterior:

itm["FieldName"]

Otros consejos

Supongo que está hablando de documentos en una lista o biblioteca, no de archivos fuente en la colmena 12.Si es así, cada biblioteca tiene versiones integradas.Puede acceder a él haciendo clic en Configuración de la biblioteca de formularios disponible en cada biblioteca (con los privilegios de administrador adecuados, por supuesto).Desde allí, seleccione Configuración de versiones y elija una configuración que funcione para su proceso.

En cuanto a obtener el número de versión en el código, si extraes un SPListItem De la colección, hay un SPListItemVersionCollection Versiones nombradas adjuntas a cada elemento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top