none
Script per l'importazione degli allegati in una SpreadSheetList RRS feed

  • 問題

  • Buongiorno a tutti,

    Questo è il mio primo post qui, anche perche sono da poco entrato nel mondo SharePoint (Utilizzo Sharepoint Server 2010). Avrei una domanda da fare a voi professionisti.

    Mi spiego.:

    Ho un file Excel che contiene i nomi, autori, versioni, ecc..  di parecchi file presenti sul filesystem su un server in locale. I nomi dei file sul filesystem sono gli stessi della colonna NOME nel file Excel. Questi record presenti nel file Excel vengono importati su Sharepoint in una SpreadSheetList. Per allegare il file corrispondente al record devo importarli uno ad uno, molto scomoda come soluzione.

    Volevo chiedervi se é possibile creare uno script da dare in pasto a PowerShell che ha il compito di scorrere la colonna NOME della SpreadSheetList e per ogni NOME allegare automaticamente il Documento PDF corrispondente che si trova appunto sul Filesystem.

    Spero di essermi spiegato. In caso ci fosse il modo, vi chiedo di darmi qualche spunto. Io non so tanto di programmazione ma cercherò di arrangiarmi :). Qualsiasi consiglio è ben accettato.

    Vi ringrazio anticipatamente.

    Saluti crim

    P.S.: Utilizzo una SpreadSheetList perchè devo importare dei file PDF, dato che con i file PDF non riesco ad estrapolare le Properties per compilare in automatico le colonne nelle DocumentLibrary, come invece è possibile fare con i documenti Office.

    • 已編輯 crim10 2011年9月26日 上午 10:29
    2011年9月26日 上午 10:23

所有回覆

  • 2011年9月26日 下午 06:37
  • Ciao Gabriele,

    Innanzi tutto grazie per la risposta e per il cosiglio. Spero di riuscirci con la guida da te postata. Vi faro' sapere.

    saluti

     

    2011年9月26日 下午 07:21
  • Quello che vuoi fare è abbastanza facilmente realizzabile usando PowerShell.

    Inizierei leggendo qua:

    http://blogs.technet.com/b/filecab/archive/2009/12/14/automatically-upload-files-from-file-server-to-sharepoint-using-the-file-classification-infrastructure-fci.aspx

     


    Ci sarebbero anche altri metodi??
    2011年9月27日 下午 02:31
  • Tanti se si sa programmare.

     

    2011年9月27日 下午 07:08
  •  

    Tanti se si sa programmare.


    Ehh lo so :) ma il programmino potrebbe essere fatto in C# o VB?

    Perché più che altro la guida postata è per le DocLibrary e non per SpreadSheet list (se ho ben capito).

    2011年9月28日 上午 06:56
  • Il linguaggio può essere qualsiasi fra quelli supportati da .NET.

    Il link postato era da esempio per la funzione di upload.

    E più che altro tutto in SharePoint è una Lista (oggetto SPList)(una Document Library è una lista specializzata). La tua spreadsheetlist non è altro che una lista con visualizzazione a griglia (deprecata fra l'altro dato che usa Activex...)

     

     

    2011年9月28日 上午 07:08
  • Adesso stro provando a creare un programma in c# che fa l'importazione.

    2 Domande.:

    1.) il programma deve essere sviluppato per forza sul sistema operativo ove è installato Sharepoint server 2010??

    2.) Sharepoint server 2010 è installato sul server con OS w server 2008 R2, come è possibile che io con il mio PC con su Windows 7 riesco a raggiungere le cartelle delle document library dandogli il percorso (\\ < host-server>\nomeSite\Lists\Attachments) ma se vado sul server e cerco, ad esempio, la cartella Attachments non me la trova neanche... Come puo essere possibile. Mi chiedo allora, dove sono collocate queste cartelle di sharepoint??

     

    Spero di essermi spiegato.. saluti crim

    2011年9月30日 下午 01:51
  • 1) No, non è necessario se si usa il Client Object Model di SharePoint. E' lievemente meno efficiente dell'Object Model Server ma ha il vantaggio che può essere eseguito su qualsiasi macchina che abbia il framework 3.5.

    2) Sul server normalmente il servizio di WebClient è disattivato.

     

    2011年9月30日 下午 07:48
  • Grazie per la risposta.

    L'applicazione che sto cercando di sviluppare ha il compito di prendere il primo nome (Quindi all'indice 0) della colonna "Nome" all'interno di una SpreadSheet List e di confrontare tale nome con il nome dei documenti all'interno del filesystem su un Server NAS. Se il nome del file corrisponde al primo recordo della colonna, allora mi deve crearo una cartella numerata "1" nel percorso del server dove sharepoint salva i documenti della Spreadsheet List. E così via, fin quando la colonna "Nome" è stata letta completamente.

    Spero di essermi spiegato. Secondo voi è un metodo applicabile.?

    Ho un problema a leggere il primo indice della colonna. 

     

    In pratica devo leggere il primo recordo (Giovanni) che sarà probabilmente assegnato all'indice {0} e confrontarlo con i file nel NAS. appena trova un PDF di nome Giovanni, allora deve prendere il PDF e copiarlo nel percordo della lista in questione.

    Il problema è che non so come faccio a prendere il primo record, cioè la stringa Giovanni.

    Qualcuno sa aiutarmi?

    2011年10月5日 上午 08:26
  • Probabilmente non hai ben compreso cosa è SharePoint, come funziona SharePoint e soprattutto dove SharePoint memorizza i dati.

    Cominciando dalla fine SharePoint memorizza i dati all'interno di un database SQLServer e non direttamente su un filesystem.
    Poi per fare quello che chiedi è necessario sviluppare (o trovare già sviluppati) degli oggetti specifici SharePoint che rientrno nel novero degli Event Receiver o dei Workflow. Questi oggetti (per alcuni aspetti quasi sovrapponibili) vengono invocati e lanciati in esecuzione al verificarsi di un evento (event receiver) legato alla transizione di stato di un elemento (il campo in un riga di quella che tu chiami spreadsheet list) oppure quando l'utente decide di eseguire l'azione volontariamente o all'aggiornamento dello dell'elemento (Workflow). Gli oggetti della prima categoria (Event Receiver) possono essere prodotti solo scrivendo codice con Visual Studio mentre i secondi possono essere realizzati sia con Visual Studio o coordinando una serie di azioni (workflow per l'appunto) tramite il workflow designer di SharePoint Designer 2010.

    Per ogni chiarimento sono a disposizione.

    2011年10月5日 下午 07:53