Francesco Geri

Il blog di Francesco Geri
posts - 94, comments - 165, trackbacks - 2

Inserimento di una data precedente al 1/1/1970 in SharePoint

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 & "/" & myFileName, myDocumentSourceStream, myProps)

 

Due osservazioni:

  1. Passando la data nuda e cruda (il datetime) si ha un errore per date inferiori all’1/1/1970, mentre per date successive funziona.
  2. 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!

Print | posted on mercoledì 19 maggio 2010 14:15 | Filed Under [ MOSS07 Tips ]

Powered by:
Powered By Subtext Powered By ASP.NET