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