Date post: | 05-Dec-2014 |
Category: |
Technology |
Upload: | biwug |
View: | 735 times |
Download: | 0 times |
Andy Van Steenbergen
Karine BoschSharePoint MVP
CAML is NOT dead!
A big thanks to our sponsorsPlatinum Sponsors
Gold Premium Sponsors
Gold Sponsors
Venue Sponsor
About Us• Karine Bosch
• SharePoint MVP since 2009
• Technical assistent of Patrick Tisseghem till September 2008
• Developer of the U2U CAML Builder
• Technical Lead SharePoint Competence Center @ ING
• Andy Van Steenbergen
• SharePoint consultant @ Ordina
• Vice-president BIWUG
Agenda
• What is CAML?
• CAML Basics
• CAML Deep Dive
• The new CAML Designer
What is CAML?• Collaborative Application Markup Language
• XML-based query language
• Introduced in SharePoint 2001
• SharePoint 2010: LINQ to SharePoint
The Basics• Ordery By
• Where
• ViewFields
• Query options
Order By Clause• To sort list items
• In ascending order
• In descending order
• On more than 1 field
<OrderBy> <FieldRef Name=“Title” /></OrderBy>
<OrderBy> <FieldRef Name=“Title” Ascending=“False” /></OrderBy>
<OrderBy> <FieldRef Name=“Title” /> <FieldRef Name=“LastName” Ascending=“False”/></OrderBy>
Where Clause• Operators
• IsNull - IsNotNull
• Eq – Neq
• Geq – Gt – Leq – Lt
• BeginsWith
• Contains
• Includes
• In
• Example of a simple syntax:
<Where> <Eq> <FieldRef Name=“LastName” />
<Value Type=“Text”>Van Steenbergen</Value> </Eq></Where>
Where Clause• More than one criterium
• Nested XML
• And / Or operators
• Example of a nested syntax
<Where> <Or> <Eq> <FieldRef Name=“LastName” />
<Value Type=“Text”>Van Steenbergen</Value> </Eq>
<Eq> <FieldRef Name=“LastName” />
<Value Type=“Text”>Bosch</Value> </Eq> </Or></Where>
Where Clause• Example of a complex syntax
<Where> <Or> <Or> <Eq> <FieldRef Name=“LastName” />
<Value Type=“Text”>Van Steenbergen</Value> </Eq>
<Eq> <FieldRef Name=“LastName” />
<Value Type=“Text”>Bosch</Value> </Eq> </Or> <Gt> <FieldRef Name=“DownloadStart” />
<Value Type=“DateTime”>2012-04-28T00:00:00Z</Value> </Gt> </Or></Where>
Where Clause for DateTime fields• DateTime Fields
• Query on date only
• Query on date and time value
<Where> <Gt> <FieldRef Name=“DownloadStart” />
<Value Type=“DateTime”>2012-04-28T00:00:00Z</Value> </Gt></Where>
<Where> <Gt> <FieldRef Name=“DownloadStart” IncludeTimeValue=“True”/>
<Value Type=“DateTime”>2012-04-28T00:00:00Z</Value> </Gt></Where>
Where Clause for Lookup fields• Lookup fields
• Query on lookup value
• Query on ID
<Where> <Eq> <FieldRef Name=“Country” />
<Value Type=“Lookup”>Belgie</Value> </Eq></Where>
<Where> <Eq> <FieldRef Name=“Country” LookupId=‘True’/>
<Value Type=“Integer”>15</Value> </Eq></Where>
ViewFields Clause• Restrict the number of fields returned
• No ViewFields clause
• Fields of default view are returned
<ViewFields> <FieldRef Name=“LastName” /> <FieldRef Name=“FirstName” /></ViewFields>
Query Options • RowLimit
• IncludeMandatoryColumns
• DatesInUtc
• ExpandUserField
• Files and folder options
Query Options and the SharePoint Object Models
• Since SharePoint 2003• Server Object Model
• Lists.asmx web Service
• Since SharePoint 2010• .NET Client Object Model
• Silverlight Client Object Model
• JavaScript Client Object Model
QUERY OPTIONS
Query Options – Files and Folder options
• Where
• FSObjType
• 0 = Files
• 1 = Folders
• ViewAttributes• Scope
• RecursiveAll
• Recursive
• FilesOnly
• Folder
QUERY OPTIONS – FILES AND FOLDERS
Advanced CAML – New elements • New CAML elements
• Includes - NotIncludes
• In
<Where> <In> <FieldRef Name='Title' /> <Values> <Value Type='Text'>Test 1</Value> <Value Type='Text'>Test 2</Value> </Values> </In></Where>
<Where> <Includes> <FieldRef Name=‘City' /> <Value Type='LookupMulti'>Antwerp</Value> </Includes></Where>
Advanced CAML (vNext)
• New in CAML
• Taxonomy Fields
• Calendar Lists
• DateRangesOverlap
• SiteDataQuery
CAML Designer vNext
• Related Lists (caml)
• Content Type Designer