CAML Query no ordenar adecuadamente
-
09-09-2019 - |
Pregunta
¿Puede alguien ayudarme con esta consulta CAML? Cuando me tapa el atributo Ascending
de TRUE
a FALSE
(también he intentado True
y False
), que no se vuelva-ordenar el conjunto de resultados.
El resto de la CAML es correcta, está siendo generado por una herramienta y están siendo devueltos los resultados apropiados.
<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>
Solución
¿La OrdenarPor tiene que estar fuera de la cláusula where?
<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>
Otros consejos
Estoy de acuerdo con la respuesta anterior, la
<Geq>
<FieldRef Name="StartDateTime"/>
<Value Type="DateTime" IncludeTimeValue="FALSE">2009-01-05T00:00:00Z</Value>
</Geq>
y ponerlo a falsa o verdadera, dependiendo de si desea incluir los valores de tiempo o no en la consulta.
Me pasé casi una semana entera tratando de obtener órdenes de fecha para trabajar de acuerdo al objeto de cliente OM CamlQuery. Finalmente me di cuenta de que tenía que ajustar
camlQuery.DatesInUtc = true;
Me parece que si está utilizando modelo de objetos nativo y el objeto SPQuery que SharePoint interpreta esa fecha como UTC por defecto (en nuestro medio) tan pronto como se mueve al objeto CamlQuery con el ClientOM es necesario configurar este parámetro .