Showing posts with label QueryOptions. Show all posts
Showing posts with label QueryOptions. Show all posts

Wednesday, 17 February 2016

Caml Query tricks, Properties list, how to use caml, must read for professionals

CAML query to get all items across all folders

<QueryOptions>
        <ViewAttributes Scope="RecursiveAll" />
  </QueryOptions>

Or

query.ViewAttributes = "Scope=\"Recursive\"";


UserID for  current user (here example for Author and Editor)


<Where>
    <Or>
      <Eq>
        <FieldRef Name="Author" />
        <Value Type="Integer">
          <UserID />
        </Value>
      </Eq>
      <Eq>
        <FieldRef Name="Editor" />
        <Value Type="Integer">
          <UserID />
        </Value>
      </Eq>
    </Or>
  </Where>



UTC, Date Time format, 

ISO Caml date time format,

yyyy-MM-ddThh=mm-sss


Today
Offset "-10"
<Where>
      <Eq>
         <FieldRef Name="DueDate" />
         <Value Type="DateTime">
            <Today />
         </Value>
      </Eq>
   </Where>
OR
<Today OffsetDays='-45' />


Date Overlaps

The following example queries for cases where a recurring event overlaps with the current date and time.

<Where>
      <DateRangesOverlap>
         <FieldRef Name="EventDate" />
         <FieldRef Name="EndDate" />
         <FieldRef Name="RecurrenceID" />
         <Value Type="DateTime">
            <Now />
         </Value>
      </DateRangesOverlap>
   </Where>


Lookup ID, Lookup value


<Query>

  <Where>
    <Eq>
      <FieldRef Name="State" LookupId="TRUE" />
      <Value Type="Lookup">68</Value>
    </Eq>
  </Where>
</Query>


Multiple OR condition

<Query>

<Where>
<And>
<Geq><FieldRef Name='TaskDate' /><Value Type='DateTime'>2014-09-24T00:00:00Z</Value></Geq>
<In><FieldRef Name='Author'  />
<Values>
<Value Type='Integer'>650</Value>
<Value Type='Integer'>108</Value>
<Value Type='Integer'>1534</Value>
</Values>
</In>
</And>
</Where> 
</Query>


View Fields Fetch only mandatory columns


<QueryOptions>
        <IncludeMandotoryFields="true" />
  </QueryOptions>



many more to come...