Question

En guise de solution temporaire jusqu'à ce que tous les concepteurs soient en place, nous sommes actuellement en train de lancer manuellement tout un tas de fichiers de configuration XML au travail.L'un des problèmes est la gestion des versions des fichiers, car les gens oublient de mettre à jour les numéros de version lors de la mise à jour des fichiers (ce qui est normal car les humains sont généralement nuls à la perfection).

Par conséquent, je pense que lorsque nous stockons les fichiers dans Sharepoint, je devrais pouvoir écrire un script pour extraire les fichiers de Sharepoint, obtenir le numéro de version et saisir/mettre à jour automatiquement le numéro de version de Sharepoint dans le fichier.Cela signifie que lorsque quelqu'un veut les "derniers" fichiers, il peut exécuter le script et obtenir les derniers fichiers avec les numéros de version corrects (il y a un peu plus que cela, donc la raison de l'utilisation du script n'est pas seulement l'avantage de l'auto- versionnement).

Est-ce que quelqu'un sait comment obtenir les fichiers + les numéros de version de Sharepoint ?

Était-ce utile?

La solution

Il existe un moyen de le faire via des services Web, mais j'ai fait davantage en implémentant des gestionnaires d'événements personnalisés.Voici un peu de code qui fera ce que vous voulez.Gardez à l'esprit que vous ne pouvez exécuter cette opération qu'à partir du serveur. Vous souhaiterez donc peut-être l'intégrer dans un service Web pour autoriser l'accès à partir de vos appareils intégrés.En outre, vous devrez référencer Microsoft.SharePoint.dll dans ce code.

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();
        }
    }
}

Les instructions using() visent à garantir que vous ne créez pas de fuite de mémoire, car SPSite et SPWeb sont des objets non gérés.

Modifier:Si le numéro de version a été promu dans un champ de bibliothèque, vous pouvez y accéder de la manière suivante dans la boucle for ci-dessus :

itm["FieldName"]

Autres conseils

Je suppose que vous parlez de documents dans une liste ou d'une bibliothèque, et non de fichiers sources dans la ruche 12.Si tel est le cas, chaque bibliothèque dispose d'un contrôle de version intégré.Vous pouvez y accéder en cliquant sur les paramètres de la bibliothèque de formulaires disponibles dans chaque bibliothèque (avec les privilèges d'administrateur appropriés, bien sûr).À partir de là, sélectionnez Paramètres de gestion des versions et choisissez une configuration qui convient à votre processus.

Quant à obtenir le numéro de version dans le code, si vous tirez un SPListItem de la collection, il y a un SPListItemVersionCollection Versions nommées attachées à chaque élément.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top