In un elenco di calendari di SharePoint creo due eventi con la data odierna. Uno faccio un evento per tutto il giorno, l'altro ho fissato l'ora di inizio alle 12 e l'ora di fine alle 23:55.SharePoint: gli eventi giornalieri si comportano diversamente nella query CAML
Quando creo una query CAML (in questo caso w/"U2U CAML Query Builder") sto osservando un comportamento strano. Quando la mia query è un semplice "OrderBy", vengono restituiti entrambi gli eventi.
Quando eseguo la seguente query che cerca per gli eventi che sono maggiori o uguali a oggi, solo l'evento che è NON contrassegnato come "All Day Event" viene restituito:
<Where>
<Geq>
<FieldRef Name='EventDate' />
<Value Type='DateTime'>2009-10-05T00:00:00Z</Value>
</Geq>
</Where>
Esaminando i risultati dallo strumento di creazione di query vedo che i valori di EventDate (il nome interno della colonna Ora inizio) sono identici (2009-10-05 00:00:00).
Perché SharePoint tratta questi due eventi in modo identico? Potrebbe essere un problema di fuso orario?
MODIFICA: ulteriori informazioni, penso che questo potrebbe essere un problema del fuso orario. Ho scoperto l'attributo "IncludeTimeValue" dell'elemento Value, descritto qui: MSDN. Sono sulla costa orientale (attualmente GMT - 4 ore). Se modifico l'elemento Value
come segue: (si noti la data è ora il 4 °, 5 ° non)
<Value Type='DateTime' IncludeTimeValue='True'>2009-10-04T20:00:00Z</Value>
Poi vengono restituiti entrambi gli eventi, ma se vado fino a 20:01 poi perdo il tutto il giorno evento. Quando vado alle 20:01, perdo anche l'evento per tutto il giorno. Qualcuno sa dove posso trovare una descrizione approfondita di questo comportamento?
EDIT2: mi sono confuso; corretto la prima modifica.
Convert.ToBoolean (elemento ["fAllDayEvent"]) era esattamente quello che stavo cercando. Grazie! –