+ All Categories
Transcript
Page 1: Karine bosch andy-van_steenbergen-caml-spsbe12

Andy Van Steenbergen

Karine BoschSharePoint MVP

CAML is NOT dead!

Page 2: Karine bosch andy-van_steenbergen-caml-spsbe12

A big thanks to our sponsorsPlatinum Sponsors

Gold Premium Sponsors

Gold Sponsors

Venue Sponsor

Page 3: Karine bosch andy-van_steenbergen-caml-spsbe12

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

Page 4: Karine bosch andy-van_steenbergen-caml-spsbe12

Agenda

• What is CAML?

• CAML Basics

• CAML Deep Dive

• The new CAML Designer

Page 5: Karine bosch andy-van_steenbergen-caml-spsbe12

What is CAML?• Collaborative Application Markup Language

• XML-based query language

• Introduced in SharePoint 2001

• SharePoint 2010: LINQ to SharePoint

Page 6: Karine bosch andy-van_steenbergen-caml-spsbe12

The Basics• Ordery By

• Where

• ViewFields

• Query options

Page 7: Karine bosch andy-van_steenbergen-caml-spsbe12

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>

Page 8: Karine bosch andy-van_steenbergen-caml-spsbe12

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>

Page 9: Karine bosch andy-van_steenbergen-caml-spsbe12

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>

Page 10: Karine bosch andy-van_steenbergen-caml-spsbe12

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>

Page 11: Karine bosch andy-van_steenbergen-caml-spsbe12

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>

Page 12: Karine bosch andy-van_steenbergen-caml-spsbe12

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>

Page 13: Karine bosch andy-van_steenbergen-caml-spsbe12

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>

Page 14: Karine bosch andy-van_steenbergen-caml-spsbe12
Page 15: Karine bosch andy-van_steenbergen-caml-spsbe12

Query Options • RowLimit

• IncludeMandatoryColumns

• DatesInUtc

• ExpandUserField

• Files and folder options

Page 16: Karine bosch andy-van_steenbergen-caml-spsbe12

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

Page 17: Karine bosch andy-van_steenbergen-caml-spsbe12

QUERY OPTIONS

Page 18: Karine bosch andy-van_steenbergen-caml-spsbe12

Query Options – Files and Folder options

• Where

• FSObjType

• 0 = Files

• 1 = Folders

• ViewAttributes• Scope

• RecursiveAll

• Recursive

• FilesOnly

• Folder

Page 19: Karine bosch andy-van_steenbergen-caml-spsbe12

QUERY OPTIONS – FILES AND FOLDERS

Page 20: Karine bosch andy-van_steenbergen-caml-spsbe12

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>

Page 21: Karine bosch andy-van_steenbergen-caml-spsbe12

Advanced CAML (vNext)

• New in CAML

• Taxonomy Fields

• Calendar Lists

• DateRangesOverlap

• SiteDataQuery

Page 22: Karine bosch andy-van_steenbergen-caml-spsbe12

CAML Designer vNext

• Related Lists (caml)

• Content Type Designer

Page 23: Karine bosch andy-van_steenbergen-caml-spsbe12

Top Related