Sharepoint users roles

Eventi ricorrenti in Sharepoint

Analizzando la modalità con cui il motore interno di SharePoint crea un evento ricorrente, si nota che non vengono creati N eventi (uno per ciascuna data), bensì un singolo evento (con un singolo ID per il dettaglio). Se si ha la necessità di effettuare il render degli eventi all’interno di un calendario esterno, come ad esempio Fullcalendar, è necessario definire alcune condizioni particolari all’interno delle Caml Query.

La definizione della Caml Query da utilizzare deve tenere conto anche della presenza di eventuali eventi ricorrenti all’interno del range di visualizzazione.

L’evento ricorrente memorizza al suo interno la data di inizio e la data di fine ricorrenza (che se non impostata è pari al 2074).

SharePoint consente di creare eventi ricorrenti di un solo giorno: non sono permessi eventi ricorrenti di più giorni.

Le proprietà dell’evento in cui SharePoint memorizza la data di inizio e fine di un evento sono EventDate e EndDate mentre all’interno di Duration è memorizzata la differenza (in secondi) tra EndDate e EventDate.

Per poter identificare se un evento è di tipo ricorrente, è possibile verificare la proprietà fRecurrence: se il valore è true siamo in presenza di un evento ricorrente

Analizzando la proprietà fAllDayEvent (impostata a true) è possibile determinare se l’evento è di tipo full day.

DateRangesOverlap

Nel concreto la condizione Where della  CamlQuery che deve essere utilizzata è la seguente:

Utilizzando DateRangeOverlap è possibile estrarre gli eventi ricorrenti nell’intorno di una particolare data. Per completare la query precedente è necessario introdurre il parametro CalendarDate. Questo parametro consente di definire la data da utilizzare per le estrazioni.

E’ proprio impostando il valore della proprietà CalendarDate che è possibile definire la data di riferimento degli eventi ricorrenti da estrarre.  All’interno della Where è possibile definire il range di estrazione degli eventi ricorrenti. Nell’esempio la proprietà

è impostata a Today, ma  può assumere i seguenti valori:

  • Today: consente di estrarre gli eventi la cui data di inizio e fine coincide con quelli del giorno corrente
  • Week:  consente di estrarre gli eventi la cui data di inizio e fine coincide con la settimana della data passata nella proprietà CalendarDate (Sunday to Sunday)
  • Month: consente di estrarre gli eventi la cui data di inizio e fine coincide con il mese  della data passata nella proprietà CalendarDate. Questo tipo di vista consente di estrarre tutte le settimane che contengono i giorni del mese
  • Year: consente di estrarre gli eventi la cui data di inizio e fine coincide con l’anno  della data passata nella proprietà CalendarDate

Ad esempio, utilizzando la libreria SPService il codice seguente consente di estrarre gli eventi ricorrenti nell’intorno di un mese per il giorno 12-05-2012.

 

 

Pubblicato da

Andrea Merlin

Laureato in informatica, diversi corsi di specializzazione legati allo Sviluppo Software e alla Computer forensics. Appassionato di nuove tecnologie, amo la programmazione, la Business Intelligence e tematiche legate alla Privacy.Sempre alla ricerca di nuove idee, stimoli … e progetti da seguire!Amo trascorrere il tempo libero in Val Borbera, un piccolo angolo del Piemonte, in provincia di Alessandria.