CAML Query non ordinare correttamente
-
09-09-2019 - |
Domanda
Qualcuno mi può aiutare con questa query CAML? I flip quando l'attributo Ascending
da TRUE
a FALSE
(anche provato True
e False
), non riordinare il set di risultati.
Il resto del CAML è corretta, viene generato da un utensile ed i risultati appropriati vengono restituiti.
<Where>
<And>
<And>
<Eq>
<FieldRef Name="Branch"/>
<Value Type="Text">Camp 1</Value>
</Eq>
<Eq>
<FieldRef Name="Type"/>
<Value Type="Choice">Day</Value>
</Eq>
</And>
<Geq>
<FieldRef Name="StartDateTime"/>
<Value Type="DateTime">2009-01-05T00:00:00Z</Value>
</Geq>
</And>
<OrderBy>
<FieldRef Ascending="TRUE" Name="Title" />
</OrderBy>
</Where>
Soluzione
Non ritiene l'OrderBy deve essere al di fuori della clausola Dove?
<Where>
<And>
<And>
<Eq>
<FieldRef Name="Branch"/>
<Value Type="Text">Camp 1</Value>
</Eq>
<Eq>
<FieldRef Name="Type"/>
<Value Type="Choice">Day</Value>
</Eq>
</And>
<Geq>
<FieldRef Name="StartDateTime"/>
<Value Type="DateTime">2009-01-05T00:00:00Z</Value>
</Geq>
</And>
</Where>
<OrderBy>
<FieldRef Ascending="TRUE" Name="Title" />
</OrderBy>
Altri suggerimenti
Sono d'accordo con la risposta di cui sopra, la
<Geq>
<FieldRef Name="StartDateTime"/>
<Value Type="DateTime" IncludeTimeValue="FALSE">2009-01-05T00:00:00Z</Value>
</Geq>
e impostarlo a false o vere, a seconda se si desidera includere i valori di tempo o non nella query.
ho trascorso quasi un'intera settimana cercando di ottenere gli ordini di data di lavorare con oggetto client OM CamlQuery. Alla fine ho capito che dovevo impostare
camlQuery.DatesInUtc = true;
Mi sembra che se si utilizza il modello oggetto nativo e l'oggetto SPQuery che SharePoint interpreta tale data come UTC di default (nel nostro ambiente) non appena ci si sposta in oggetto CamlQuery con la ClientOM è necessario impostare questo parametro .