CAML ve SharePoint 2007 de kullanımı - 1

Yazar: Timuçin DURSUN
Kategori: MS SharePoint
Eklenme Tarihi: 30.8.2007 10:50:56



CAML kullanımına giriş niteliğinde bir makale

CAML ve SharePoint 2007 de kullanımı - 1

SharePoint 2007 uygulamalarında listelerde geniş bir kullanımı olan CAML dilini konuya giriş niteliğinde sizlere anlatmak istiyorum. CAML kardeşi sayılıcak HTML ve XML gibi taglardan oluşan bir dildir. CAML açılımı ise “Colloborative Application Markup Language” dir. SharePoint’in ilk versiyonları olan SharePoint 2001 ve SharePoint Team Services’den beri kullanılmaktadır. SharePoint uygulamalarında listeleri sorgulamak, SharePoint sitelerinin oluşturulması ve özelleştirilmesi amacıyla kullanılmaktadır. Database içerisinde bulunan tabloların SQL dili ile sorgulanmasına benzer bir yapısı vardır. CAML dilindeki ana amaç SharePoint uygulamasının içerdiği listeleri istenen veriyi bulmak amacıyla kolaylıkla sorgulamakdır.

Örnek bir CAML sorgusu iyi biçimlendirilmiş XML yapısında aşağıdaki gibi olmalıdır;

<Query>

<Where>

<!--Karşılaştırma Operatorleri Buraya-->

<Eq>

<FieldRef Name=”Alan Adı Buraya” />

<Value Type=”Veri Tipi Buraya”>Sorgulancak Veri Buraya</Value>

</Eq>

</Where>

<OrderBy>

<FieldRef Name=”Alan Adı Buraya” />

<FieldRef Name=”Alan Adı Buraya” />

</OrderBy>

</Query>

Yukarıdaki CAML kodunda;

  • <Eq> tagı karşılaştırma yapılacağını gösterir. Eşitliği ifade eder.
  • <FieldRef> tagı hangi alanın karşılaştırma için kullanılcağını ifade eder.
  • <Value> tagı belirtilen alan ile karşılaştırılcak değeri ifade eder.
  • <OrderBy> tagları arasında alan adı <FieldRef> tagı ile verilmiş birden fazla kolon için sıralama yapılabilmektedir.

    CAML Karşılaştırma Operatörleri

    Başlama Tagı

    Açıklama

    Contains

    Eq

    Geq

    Gt

    Leq

    Lt

    Neq

    DateRangesOverlap

    IsNotNull

    IsNull

    Verilen veriyi içeriyormu

    Verilen veriye eşitmi

    Verilen veriden büyük veya eşitmi

    Verilen veriden büyükmü

    Verilen veriden küçük veya eşitmi

    Verilen veriden küçükmü

    Verilen veriye eşit değilmi

    Verilen tarih aralığına göre karşılaştırır

    Verilen veri Null değil ise

    Verilen veri Null ise

    IsNull ve IsNotNull operatörleri dışında tüm operatörler <value> tagı ile değer girilmesini gerektirirler. Bunun dışında yukarıdaki tüm operatörler <FieldRef> tagı ile bir alan belirtilmesini gerektirirler.

    Anlatılanlardan sonra gerçek bir kullanım örneğine bakalım.

    <Query>

    <OrderBy>

    <FieldRef Name=”Title” />

    </OrderBy>

    <Where>

    <Lt>

    <FieldRef Name=”Baslama_x0020_Tarihi” />

    <Value Type=”DateTime”>2007-01-01T00:00:00Z</Value>

    </Lt>

    </Where>

    </Query>

    Yukarıdaki kodda aranılan kaydın [Baslama Tarihi] alanı <value> tagı içerisinde verilen tarihden daha küçük olması(<Lt>) ve bulunan verilerin [Title] kolonuna göre sıralanması istenmektedir.

    Burdaki _x0020_ değerinin ne anlama geldiğini merak edenler içinde küçük bir açıklama yapmam gerekiyor sanırım. _x0020_ hex formatında olup SharePoint listelerinde bulunan kolon adlarındaki boşluk karakterini simgelemektedir.

    CAML diline giriş niteliğindeki makalemizin sonuna gelmiş bulunuyoruz. Konu ile ilgili bir sonraki makalede CAML dilinin SharePoint uygulamalarındaki kullanımına değineceğiz.

    Umarım SharePoint uygulaması geliştirenler için yararlı bir makale olmuştur. İyi çalışmalar...

    Timuçin DURSUN


Timuçin DURSUN

İlgilendiği konular öncelik sırasına göre C#,ASP.NET,ADO.NET,ADO.NET Entity Framework,LINQ,SOA and Distributed Systems,NUnit,NHibernate(Object-relational mapping), Design Patterns, WPF, SilverLight-WPF/E. http://www.timucindursun.com sitesinden yazar hakkında ayrıntılı bilgi alabilirsiniz.
Bu makaleye ilk yorum yapan siz olun.

Yorumunuz