<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>MOSS07</title>
        <link>http://blogs.ugidotnet.org/franx_blog/category/MOSS07.aspx</link>
        <description>Microsoft Sharepoint 2007</description>
        <language>it-IT</language>
        <copyright>Francesco Geri</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Inserimento di una data precedente al 1/1/1970 in SharePoint</title>
            <link>http://blogs.ugidotnet.org/franx_blog/archive/2010/05/19/98593.aspx</link>
            <description>Se elaborando documenti e proprietà su SharePoint (2007) vi capitasse un errore come questo:  Microsoft.SharePoint.SPInvalidPropertyException: Date Times before 1/1/1970 are not supported. Allora il problema potrebbe essere quello capitato anche a me oggi.  Il mio codice eseguiva l’upload di un documento su SharePoint e contestuale valorizzazione delle sue proprietà, il tutto tramite il metodo Add dell’oggetto SPFolder.   Se fra le proprietà c’è una data allora come valore è bene passare quello ottenuto dalla funzione SPUtility.CreateISO8601DateTimeFromSystemDateTime, ovvero una stringa con la rappresentazione UTC della data (formato ISO8601, ovvero yyyy-mm-ddThh:mm:ssZ).   Il codice corretto è il seguente.          ' Crea una Hashtable delle proprietà


    Dim myProps As New Hashtable()


    Dim propName As String = "MyDatePropName"


    ' Imposta come valore una stringa con il formato UTC, ottenuta come segue: 


    Dim propValue As Object = SPUtility.CreateISO8601DateTimeFromSystemDateTime(New DateTime(1950, 1, 1))


    ' ... invece di: Dim propValue As Object = New DateTime(1950, 1, 1)


     


    myProps.Add(propName, propValue)


     


    ' Recupera l'oggetto SPFolder dall'oggetto SPWeb corrente


    Dim oFolder as SPFolder = myWeb.GetFolder(myFolderURL)


    ' Aggiunge il file con le proprietà


    Dim objDestFile as SPFile = objDestFolder.Files.Add(myFolderURL &amp;amp; "/" &amp;amp; myFileName, myDocumentSourceStream, myProps)



 

Due osservazioni:


  Passando la data nuda e cruda (il datetime) si ha un errore per date inferiori all’1/1/1970, mentre per date successive funziona.

  Passando una stringa che non sia una data non succede nulla… nel senso che non c’è eccezione, il documento viene caricato e la proprietà resta vuota


 

Note: Grazie a Gabriele per i suggerimenti!&lt;img src="http://blogs.ugidotnet.org/franx_blog/aggbug/98593.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Francesco Geri</dc:creator>
            <guid>http://blogs.ugidotnet.org/franx_blog/archive/2010/05/19/98593.aspx</guid>
            <pubDate>Wed, 19 May 2010 12:15:50 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/franx_blog/archive/2010/05/19/98593.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/franx_blog/comments/commentRss/98593.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Eseguire lo Shrink del database di contenuto di WSS</title>
            <link>http://blogs.ugidotnet.org/franx_blog/archive/2008/12/04/94856.aspx</link>
            <description>Come fare ad eseguire lo shrink del database di contenuto di WSS, quando WSS utilizza l'istanza di Sql Server propria (quella che crea il setup di WSS)?  Il problema è che da SQL Server Management Studio non ci si può connettere all'istanza di SQL Server de iWSS (almeno questo mi risulta).  Allora si può ricorrere alla linea di comando.     Aprire il prompt dei comandi    Posizionarsi sulla cartella (SQL Server 2008):           &amp;lt;drive&amp;gt;:\Program Files\Microsoft SQL Server\90\Tools\Binn          eseguire il comando:           sqlcmd -S MY_SERVER\MICROSOFT##SSEE -q "dbcc shrinkdatabase(MY_WSS_CONTENT_DB)"      Dove:  MY_SERVER\MICROSOFT##SSEE è l'istanza di SQL Server  MY_WSS_CONTENT_DB è il database di WSS     Naturalmente ringrazio il collega Osvaldo che mi ha supportato nel determinare il comando sql da eseguire!&lt;img src="http://blogs.ugidotnet.org/franx_blog/aggbug/94856.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Francesco Geri</dc:creator>
            <guid>http://blogs.ugidotnet.org/franx_blog/archive/2008/12/04/94856.aspx</guid>
            <pubDate>Thu, 04 Dec 2008 05:50:57 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/franx_blog/archive/2008/12/04/94856.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/franx_blog/comments/commentRss/94856.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Nel meraviglioso mondo di SharePoint!</title>
            <link>http://blogs.ugidotnet.org/franx_blog/archive/2008/07/02/93271.aspx</link>
            <description>Problema:  Se da codice imposto una proprietà di tipo data+ora di un documento contenuto in una Document Library di SharePoint mi ritrovo un valore diverso da quallo impostato. In particolare ho uno sfasamento di un'ora o due.     Soluzione:  Certo, direte voi, devi usare le date in formato UTC.  Allora vediamo coda succede in 2 casi, cioè se il file esiste e modifico la sua proprietà, oppure se il file è creato nuovo e la proprietà assegnata all'upload.  L'esempio suppone che:     ci sia un documento all'url http://myServer/mySite/myDocLib     la document library che contiene quel documento abbia una proprietà di nome myDateTimeProp    Il codice di esempio (inserito in un qualche button click) esegue l'update della proprietà del documento esistente, poi crea un nuovo documento (con il contenuto del precedente) assegnandogli un certo valore della proprietà di tipo Data.  Si noti che nel primo caso (update) si deve usare la data nel suo formato normale, nel secondo la si deve convertire in formato UTC.  Ogni altra combinazione non sembra funzionare.                 1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        2     ' Esegue l'update della data:        3     Dim urlDoc As String = "http://myServer/mySite/myDocLib/myDoc1.tif"        4     Dim objSite As SPSite = Nothing        5     Dim objWeb As SPWeb = Nothing        6     Try        7       Me.Cursor = Cursors.WaitCursor        8       ' Crea gli oggetti SPSite ed SPWeb         9       objSite = New SPSite(urlDoc)       10       objWeb = objSite.OpenWeb       11       '' Cerca la document library       12       Dim objItem As SPListItem = objWeb.GetListItem(urlDoc)       13       objItem.Item("myDateTimeProp") = Now       14       objItem.Update()       15       Dim stream As IO.Stream = objItem.File.OpenBinaryStream()       16       Dim props As New Hashtable       17       props.Add("myDateTimeProp", Now.ToUniversalTime)       18       objItem.File.ParentFolder.Files.Add("myDoc2.tif", stream, props)       19       stream.Dispose()       20     Catch ex As Exception       21       MessageBox.Show(ex.ToString)       22     Finally       23       If Not objSite Is Nothing Then objSite.Dispose()       24       If Not objWeb Is Nothing Then objWeb.Dispose()       25       Me.Cursor = Cursors.Default       26     End Try       27   End Sub             Considerazioni finali    Si tratta di una mia personalissima ipotesi, ma secondo me i team di sviluppo della funzionalità di update e di quella di addnew sono distinti, separati e non comunicanti.     &lt;img src="http://blogs.ugidotnet.org/franx_blog/aggbug/93271.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Francesco Geri</dc:creator>
            <guid>http://blogs.ugidotnet.org/franx_blog/archive/2008/07/02/93271.aspx</guid>
            <pubDate>Wed, 02 Jul 2008 23:59:30 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/franx_blog/archive/2008/07/02/93271.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/franx_blog/comments/commentRss/93271.aspx</wfw:commentRss>
        </item>
        <item>
            <title>MOSS 2007: file .p7m e file .p7c</title>
            <link>http://blogs.ugidotnet.org/franx_blog/archive/2007/12/14/90284.aspx</link>
            <description>Oggi ho caricato un documento .p7m in una document library di SharePoint 2007. 
Poi ne ho fatto il download e magicamente il mio file .p7m era diventato un .p7c...
Cioè se su SharePoint c'è un file p7m e si prova a scaricarlo o aprirlo SharePoint lo restituisce cambiandogli l'estensione in p7c.
Basta rinominarlo per riavere il file di origine.
Tuttavia, per risolvere il problema alla radice occorre:

     andare sul web server iis (sul web site di riferimento)
    aggiungere o modificare l'estensione .p7m con il seguente mime type: x-application/pkcs7-mime. 
    
    riavviare l'application pool di riferimento. 
    

(Per la soluzione grazie al collega Alfredo)

&lt;img src="http://blogs.ugidotnet.org/franx_blog/aggbug/90284.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Francesco Geri</dc:creator>
            <guid>http://blogs.ugidotnet.org/franx_blog/archive/2007/12/14/90284.aspx</guid>
            <pubDate>Fri, 14 Dec 2007 05:26:28 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/franx_blog/archive/2007/12/14/90284.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/franx_blog/comments/commentRss/90284.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Event ID 27745 - WSS 3</title>
            <link>http://blogs.ugidotnet.org/franx_blog/archive/2007/12/11/90221.aspx</link>
            <description>&lt;p&gt;Oggi mi è capitato di riscontrare su un server con installato SharePoint Portal Server 2007 una serie di strani malfuzionamenti.&lt;/p&gt;
&lt;p&gt;Nel registro eventi di Windows ho trovato una serie molto numerosa di log con il seguente errore: &lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;font size="2" face="Verdana" color="#800000"&gt;The description for Event ID ( 27745 ) in Source ( Windows SharePoint Services 3 ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the / AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: #50071: Unable to connect to the database WSS_Content on &amp;lt;our sql server&amp;gt;. Check the database connection information and make sure that the database server is running&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Cercando cercando non ho trovato la causa, ma ho trovato un post (a questo &lt;a target="_blank" href="http://www.eggheadcafe.com/software/aspnet/30576497/error-event-id-27745.aspx"&gt;link&lt;/a&gt;) in cui si suggeriva di riavviare i seguenti servizi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Distributed Transaction Coordinator (MSDTC) &lt;/li&gt;
    &lt;li&gt;Windows SharePoint services Administration &lt;/li&gt;
    &lt;li&gt;Windows SharePoint Services Search &lt;/li&gt;
    &lt;li&gt;Windows SharePoint Services Timer &lt;/li&gt;
    &lt;li&gt;Windows SharePoint Services Tracing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reinserendo le credenziali dell'utente se non fossero ripartiti.&lt;/p&gt;
&lt;p&gt;Nel mio caso il riavvio di quei servizi ha sistemato le cose, per cui posto nel caso servisse ad altri.&lt;/p&gt;
&lt;p&gt;Non ho ancora capito la causa del tutto, ma prometto che se la scopro ri-posto!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/franx_blog/aggbug/90221.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Francesco Geri</dc:creator>
            <guid>http://blogs.ugidotnet.org/franx_blog/archive/2007/12/11/90221.aspx</guid>
            <pubDate>Tue, 11 Dec 2007 03:29:01 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/franx_blog/archive/2007/12/11/90221.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/franx_blog/comments/commentRss/90221.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Upload di un documento su MOSS07 con proprietà</title>
            <link>http://blogs.ugidotnet.org/franx_blog/archive/2007/10/23/89154.aspx</link>
            <description>Il codice seguente esegue l'upload di un documento su MOSS 07.
Le parti interessanti del codice proposto sono 2:

    Il codice imposta anche le proprietà del documento in un'unica operazione, quindi generando un'unica versione del documento (nel caso di versionamento attivato). Da notare che la stessa cosa non era possibile nel modello ad oggetti di SharePoint 2003. 
    I valori delle proprietà sono impostati in base al nome visualizzato della proprietà stessa, per cui il codice si preoccupa di trovare il nome interno e convertirlo nel formato opportuno. 

 

Imports Microsoft.SharePoint
 
Sub UploadFile()
  ' Recupera l'oggetto SPSite
  Dim objSite As New SPSite("http://myServer/MyWebSite/")
  ' Recupera l'oggetto SPWeb
  Dim objWeb As SPWeb = objSite.OpenWeb()
  ' Recupera l'oggetto SPDocumentLibrary
  Dim objDocLib As SPDocumentLibrary = objWeb.Lists("MyDocLib")
  ' Predispone una Hashtable per le proprietà del documento
  Dim properties As New Hashtable
  ' Predispone una variabile per il nome della proprietà corrente
  Dim propertyName As String
  ' Recupera il profilo della document library
  For i As Integer = 0 To objDocLib.Fields.Count - 1
    Select Case objDocLib.Fields(i).Title
      Case "Proprietà 1"
        ' Converte il nome interno nella nome XML per la Hashtable delle proprietà
        propertyName = System.Xml.XmlConvert.DecodeName(objDocLib.Fields(i).InternalName)
        ' Aggiunge la coppia (nome XML, valore) per la proprietà
        properties.Add(propertyName, "Valore 1")
      Case "Proprietà 2"
        ' Converte il nome interno nella nome XML per la Hashtable delle proprietà
        propertyName = System.Xml.XmlConvert.DecodeName(objDocLib.Fields(i).InternalName)
        ' Aggiunge la coppia (nome XML, valore) per la proprietà
        properties.Add(propertyName, "Valore 2")
      Case "Proprietà 3"
        ' Converte il nome interno nella nome XML per la Hashtable delle proprietà
        propertyName = System.Xml.XmlConvert.DecodeName(objDocLib.Fields(i).InternalName)
        ' Aggiunge la coppia (nome XML, valore) per la proprietà
        properties.Add(propertyName, "Valore 3")
    End Select
  Next i
  ' Recupera l'oggetto SPFolder corrispondente alla root folder della document library
  Dim objFolder As SPFolder = objDocLib.RootFolder
  ' Legge il documento
  Dim fStream As IO.FileStream = IO.File.OpenRead("c:\myFolder\myDoc.doc")
  Dim fContent(fStream.Length - 1) As Byte
  fStream.Read(fContent, 0, fStream.Length)
  ' Aggiunge il documento con le proprietà
  objFolder.Files.Add("http://myServer/MyWebSite/MyDocLib/myDoc.doc", fContent, properties, True)
  ' Chiude lo stream e ne fa la Dispose
  fStream.Close()
  fStream.Dispose()
  ' Esegue le Dispose degli oggetti relativi a Sharepoint
  objWeb.Dispose()
  objSite.Dispose()
End Sub&lt;img src="http://blogs.ugidotnet.org/franx_blog/aggbug/89154.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Francesco Geri</dc:creator>
            <guid>http://blogs.ugidotnet.org/franx_blog/archive/2007/10/23/89154.aspx</guid>
            <pubDate>Tue, 23 Oct 2007 00:11:41 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/franx_blog/archive/2007/10/23/89154.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/franx_blog/comments/commentRss/89154.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Creating Custom Web Service for Sharepoint 2007 (2)</title>
            <link>http://blogs.ugidotnet.org/franx_blog/archive/2006/08/31/47028.aspx</link>
            <description>&lt;img src="http://blogs.ugidotnet.org/franx_blog/aggbug/47028.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Francesco Geri</dc:creator>
            <guid>http://blogs.ugidotnet.org/franx_blog/archive/2006/08/31/47028.aspx</guid>
            <pubDate>Thu, 31 Aug 2006 12:36:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/franx_blog/archive/2006/08/31/47028.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/franx_blog/comments/commentRss/47028.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Creating Custom Web Services for SharePoint 2007</title>
            <link>http://blogs.ugidotnet.org/franx_blog/archive/2006/08/02/45780.aspx</link>
            <description>Salve a tutti!
Escluso il post di benvenuto, il mio esordio a tutti gli effetti sul mio blog avviene con questo primo vero post.

Il problema nasce stamattina, quando ho deciso di creare un web service con VS2005 da inserire in Sharepoint 2007 (una piccola prova, tipo il semplice download di un file, giusto per prendere confidenza con i due strumenti).

[...leggi &lt;a href="http://blogs.ugidotnet.org/franx_blog/archive/2006/08/02/45780.aspx"&gt;qui&lt;/a&gt;...]

&lt;img src="http://blogs.ugidotnet.org/franx_blog/aggbug/45780.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Francesco Geri</dc:creator>
            <guid>http://blogs.ugidotnet.org/franx_blog/archive/2006/08/02/45780.aspx</guid>
            <pubDate>Wed, 02 Aug 2006 19:23:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/franx_blog/archive/2006/08/02/45780.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/franx_blog/comments/commentRss/45780.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>