Domanda

Come un ripiego temporaneo fino a quando tutti i progettisti sono a posto, abbiamo attualmente a mano gomito un sacco di file di configurazione xml al lavoro.Uno dei problemi con questo file versioning perché la gente si dimentica di aggiornare i numeri di versione per l'aggiornamento del file (che non è prevedibile come gli esseri umani generalmente succhiare alla perfezione).

Quindi ho capito che, come abbiamo memorizzare i file in Sharepoint dovrei essere in grado di scrivere uno script per estrarre i file in giù da Sharepoint, ottenere il numero di versione e automaticamente inserire/aggiornare il numero di versione di Sharepoint in un file.Questo significa che quando qualcuno vuole "più recente" file possono eseguire lo script aggiornati i file con i numeri di versione corretta (c'è un po ' di più in modo che il motivo per utilizzare lo script non è solo il beneficio di controllo automatico delle versioni).

Qualcuno sa come ottenere i file + numeri di versione di Sharepoint?

È stato utile?

Soluzione

C'è un modo per farlo al servizi web, ma ho fatto di più con l'implementazione di gestori di eventi personalizzati.Qui è un po ' di codice che si desidera.Tenete a mente, è possibile eseguire solo questo dal server, in modo che si può avvolgere un servizio web per consentire l'accesso da dispositivi embedded.Inoltre, sarà necessario fare riferimento al Microsoft.SharePoint.dll in questo codice.

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

L'utilizzo di() istruzioni per garantire che non si crea una perdita di memoria, come il SPSite e SPWeb non sono gestiti gli oggetti.

Edit:Se il numero di versione è stato promosso a un campo libreria, vi si può accedere dal seguente all'interno del ciclo for di cui sopra:

itm["FieldName"]

Altri suggerimenti

Sto supponendo che si sta parlando di documenti in un elenco o in una raccolta, non i file di origine in 12 alveare.Se è così, ogni biblioteca dispone di un built-in di controllo delle versioni.È possibile accedere facendo clic su Impostazioni raccolta moduli disponibili presso ciascuna biblioteca (con gli opportuni admin privs, naturalmente).Da qui, selezionare Impostazioni di controllo delle versioni, e scegliere un setup che funziona per il vostro processo.

Come per ottenere il numero di versione nel codice, se si tira un SPListItem dalla collezione, c'è un SPListItemVersionCollection denominata Versioni allegate ad ogni elemento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top