Makale Özeti

Sharepoint listelerine dışarıdan erişmek bu günlerde Sharepoint üzerine çalışma yapan herkesin sorduğu soruların başında geliyor. Bu makalemizde de, Windows SharePoint Services RPC metotları hakkında bilgi vererek; bu metotların nasıl ve ne amaçlar ile kullanılabileceğine bir göz atacağız.

Makale

Windows SharePoint Services RPC Metotları Kullanarak Sharepoint Listelerine Erişim

Bu sefer size onlarca soru aldığım bir konu hakkında bilgi vermek istiyorum. Soruları genellemek gerekirse tam karşılığı şu olurdu sanırım. "Sharepoint içerisindeki öğelere nasıl erişebiliriz?" Bunlar resim olabilir, bir doküman olabilir ya da Sharepoint kütüphane ve listelerinde kullandığımız her şey olabilir. Ben de kısaca şöyle cevap verirdim. Sharepoint web servislerini kullanarak kolaylıkla erişebilirsiniz. Evet, cevap yetersiz :) Bunu ben biliyor olabilirim ama geçenlerde yine gelen bir soru üzerine nette araştırma yaptım ve konu ile ilgili hiç elle tutulur bir bilgiye rastlayamadım. Bu yüzden bu konuyu detayları ile birlikte birkaç makale ve örnek senaryo ile aktarmak istedim. İşte başlıyoruz.

Öncelikle işe temelden başlamak istiyorum. Sharepoint listelerine web servisleri yoluyla ulaşabiliriz. Bu web servislerine ve senaryolar ile kullanımlarına daha sonra bakıyor olacağız. Ama öncelikle bizim Sharepoint kütüphane ve listelerinden neleri sorgulayıp, neleri çekebileceğimizi bilmemiz gerekiyor. Bu işlemleri gerçekleştirebilmemiz için tek ihtiyacımız olan Windows SharePoint Services RPC metotları. Bunlar oldukça güçlü ve zaman zaman onlarla ne yapacağımızı bilmiyorsak; çok can sıkıcı ve zor metotlar olabilir. Size bunlar ile ilgili bir web part yazıp; alın bakın oldu da diyebilirdim ama şimdilik asıl amacımıza odaklanalım ve Sharepoint listeleri içerisindeki bilgileri nasıl edinebileceğimize bakalım.

En basit yolumuz sanırım bir url protokolü kullanarak bu bilgileri alabilmek. Verileri XML olarak döndürmek şu anda bizim amacımız için yeterli. Onları web part içinde kullanmak gibi senaryolar için bu bilgilerle çalışabilirsiniz. Şimdi RPC metotlarını kullanabilmek için öncelikle bir demo ortamı oluşturalım.

  • Herhangi bir Sharepoint sitenizi açın (ben burada benim demo sitem litwareportal i kullanacağım).


  • Herhangi bir doküman kütüphanesi oluşturun ve içerisin bir kaç doküman atın (Ben ProgrammingDocz adını verdiğim bir tane oluşturdum).


  • Liste parametreleri bilgi döndürebilmemiz için ilgili listenin GUID bilgisine ihtiyaç duyar. Bunu en kolay yoldan şu şekilde edinebiliriz.
    • Kütüphane içerisindeyken Settings > Document Library Settings tıklayın ve List= ifadesinden sonraki değer bizim GUID değerimizdir (Aslında burada adres satırında yazan List=%7B1EABD694%2D4E21%2D462E%2D8527%2DF450FEE2D8BD%7D şeklindeki bilgi bizim için yeterli olacaktır ama daha anlaşılır bir ifade edinebilmek için; örneğin Audience targeting settings e tıklayın ve yine adres satırındaki List değişkeni içerisindeki {1eabd694-4e21-462e-8527-f450fee2d8bd} gibi olan bilgiyi bir kenara yazın. Bu sizin bu kütüphane için GUID değerinizdir. Bu her liste veya kütüphane için farklı bir değerdir.)
Bir sonraki aşamaya geçmeden önce biraz RPC metotları hakkında bilgi edinelim.

Windows SharePoint Services RPC Metotları

Bu bölüm, Windows SharePoint Services Remote Procedure Call (RPC) protokolünün kullanımı ve metotları hakkında bilgi içermektedir. Bu protokolü, herhangi bir Win32 tabanlı uygulamada, bir ASPX web uygulamasında ya da konsoldan sunucuya HTTP POST isteğinde bulunmak için kullanabilirsiniz. Bu protokoldeki metotlar ile içerik veritabanı içerisinde herhangi bir değişiklik yapamazsınız. Metotlar URL protokolü üzerinden de HTTP GET istekleri gerçekleştirilerek kullanılabilir (Bizim bu makalede yapacağımız gibi).

Aşağıdaki tabloda, Microsoft Windows SharePoint Services Remote Procedure Call (RPC) protokolü metotlarını ve kısaca açıklamalarını bulabilirsiniz. Ne yazık ki güvenlik nedenleri ile bunların sadece bazılarını URL protokolü üzerinden kullanabiliyoruz.

Metot İsmi Açıklama
Cltreq Ekleme, düzenleme ya da silme gibi web sayfası ile ilgili tüm web tartışma operasyonlarını gerçekleştirir ya da doküman kütüphanesinde saklanan doküman ile ilgili işlemleri yapabilir.
Delete Listeden ya da doküman kütüphanesinden belirlenen öğeyi siler.
DELETEFIELD Sharepoint listesinden bir alanı siler.
DeleteList Belirli listeyi siler.
DeleteView Belirli görüntüyü siler.
dialogview Bir site içerisindeki doküman kütüphanesinin, belirli bir doküman kütüphanesinin ya da dosyaları açmak veya kaydetmek için kullanılan bir doküman kütüphanesi içindeki klasörün görüntüsünü açar; ya da dosyaları kaydederken kullanılan bir özelliği açar.
Display Bir veri tabanı sorgusu çalıştırır ve liste verisini XML ya da HTML formatında döndürür. Gerçekleştirilecek sorguyu, döndürülecek içeriği ve arzu edilen formatı belirleyebilirsiniz.
DisplayPost Form verisi olarak post edilen Collaborative Application Markup Language (CAML) i döndüren Microsoft Windows SharePoint Servislerini talep eder.
ExportList Collaborative Application Markup Language (CAML) formatında liste şemasını verir.
GetProjSchema Microsoft Windows SharePoint Services tabanında bir web sitesi için XML şemasını talep eder.
GetUsageBlob Web sitesinin kullanımı hakkında bilgi döndürür.
HitCounter Hit sayacı da içeren sayfanın hit lerini döndürür.
MODLISTSETTINGS SharePoint listesinin özelliklerini değiştirir.
MtgKeep Takvim üzerinde oluşturulmuş bilgilerden artık atıl kalmış olanlarını temizler.
MtgMove Atıl kalmış toplantı döngüsünü siler ya da çalışma alanı içeriğini atıl kalmış toplantı döngüsünden başka bir toplantı döngüsüne taşır.
NEWFIELD Sharepoint listesine bir alan ekler.
NewList Discussions, Contacts ya da Survey gibi belirli bir tipte Sharepoint listeleri oluşturur.
NewView Belirli bir listenin görüntüsünü oluşturur.
NewViewPage SharePoint Web sitesine bir görüntü (view) sayfası ekler.
NewWebPage Belirli bir doküman kütüphanesi içerisinde yeni bir web part sayfası ya da yeni bir basit web sayfası oluşturur.
RenderView Sharepoint listesi için görüntüsünün içeriğini talep eder.
ReorderFields Liste için veri girişi formunda gösterilen Sharepoint listesi içindeki alanların sırasını değiştirir.
Save Liste içerisindeki bir öğeyi değiştirir veya yenisi ekler ya da bir klasör için veya doküman kütüphanesindeki bir dosya için özelliklerini düzenler.
SiteProvision Microsoft Windows SharePoint Servislerinden mevcut web sitesine listelerin varsayılan ayarların aktarılması talebinde bulunur.
UPDATEFIELD Sharepoint listesindeki mevcut alanın şemasını düzenler.
UpdateView Listenin belirli bir görüntüsünü düzenler.

Display Metodunun Kullanımı

Makalenin başında demo ortamı için neler yapmamız gerektiğini görmüştük. Eğer oradaki adımları doğru bir şekilde gerçekleştirdiyseniz, elimizde bir doküman kütüphanesi ve bu kütüphaneye ait bir GUID verisi olacaktır. Şimdi bu bilgileri kullanarak RPC metotlarının URL protokolü üzerinden nasıl kullanılabileceğine bakacağız.

Genel olarak URL protokolünü RPC metotlarımız için aşağıdaki gibi kullanabiliriz.

http://Sunucu_Ismi/[siteler/][Site_Ismi/]_vti_bin/owssvr.dll?Cmd=Method_adi[&Parametre1=Deger1&Parametre2=Deger2

Gerçekten de hiç de zor değil. Buradaki sunucu ismi, web sunucunuzun ismi. Sonraki ise site ismi. Burada metot ismi de hangi metodu kullanacaksanız o.

Bu makalemiz için benim litwareportal adli demo sunucumda ProgrammingDocz isimli bir doküman kütüphanesi oluşturdum. GUID değeri de 1eabd694-4e21-462e-8527-f450fee2d8bd. Şimdi, Display RPC Metodunu kullanarak bu listeden veri çekeceğim.

Adres barımı aşağıdaki bilgiyi giriyorum:

http://litwareportal/_vti_bin/owssvr.dll?Cmd=Display&List={1eabd694-4e21-462e-8527-f450fee2d8bd}&XMLDATA=TRUE

Ve ekrana aşağıdaki gibi bir bilgi geliyor.


Bu bilgi, listemizden gelen ve temel olarak ADO.NET RecordSet den dönen bir XML bilgisi. Bu bilgiyi dilediğiniz gibi kullanabilirsiniz. Örneğin ben bir sonraki makalelerimde buradan edindiğim bilgiler ile bir listeye dışarıdan erişmeye çalışacağım. Buradaki, örneğin ows_LinkFilename alan ismini kullanarak liste içerisindeki verileri dışarıdan listeleyebilirsiniz.

Sizde istediğiniz gibi buradan dönen veriler ile ilgili çalışmalar yapabilirsiniz. Gerçekten artık işimiz çok basit. Sadece listedeki tüm öğeleri seçip ve örneğin tümünü bir tabloda gösterebilirsiniz. Bundan sonraki işiniz sadece dönen XML verilerini uygun bir şekilde bir web sayfasında göstermek olacaktır.

Özet

Bu makalede oldukça basit bir örnek ile Sharepoint içerisinden herhangi bir web part oluşturmadan nasıl bilgi çekebileceğimizi gördük ve bir başlangıç yaptık. Bu tarz bir bilgi ile göstermek istediğiniz bilgiyi dilediğiniz şekilde kullanıcılara sunabilirsiniz. Aynı Sharepoint Designer içerisinde kullandığınız DataView web part ında olduğu gibi buradaki bilgileri herhangi bir web uygulamanızın dilediğiniz bir web sayfasında sorunsuzca gösterebilirsiniz. Tabii ki de tüm bunları yapabilmek için birazcık XML - XSL bilmeniz ve koda hakim olmanız gerekecektir. Burada tüm metotları göstermemiz imkansız ama sizde değişik senaryolarla buradaki tüm metotları test edebilirsiniz.

Kaynak: MSDN: Windows SharePoint Services RPC Methods

Bir sonraki makalelerde görüşmek üzere. İyi çalışmalar...


Tayfun AKCAY

tayfun@tayfunakcay.com