Lists.asmx, GetListItems ve klasörler

Birinin etrafında bugün SharePoint bir parçası olarak sağlanan list.asmx web hizmeti için bir araştırma yaptığını 2010 (ve önceki sürümleri).  O was güçlü-e doğru kök klasörde liste öğelerini almak için (alt klasörleri adları da dahil olmak üzere), öğeleri alt klasörlere alamadım ama.  Bazı Internets üzerinde etrafa yaptı ve şaşırtıcı ortak bir soru.  Henüz, Basit bir soru için iyi bir cevap alamadım., "Ben klasörü biliyorsanız, klasördeki öğelerin nasıl alabilirim?”  Dürüst olmak gerekirse, Ben kendi dışarı bu bir şekil bir süre istedim çünkü bu zor deneyin vermedi Gülümseme.

Bunu ayarlamak için, "Bloglama senaryoları" adlı bir site ve "Özel liste ile alt klasörler" adlı özel bir liste oluşturdum.  Sonra adlı klasör oluşturdu:

  • Yıl 2005
  • Yıl 2006
  • Yıl 2007

Ben birkaç öğe "2006 yılı" klasöre eklendi.  Ne gibi görünüyor olmasıdır.:

image

Arkadaşım değil ama C# kodu yazmak yerine Java yazılımını kullanma, Yani o gerçekten gerekli soap zarfının oldu.  Almak için, JQuery biraz yazdı ve fiddler kullanılmış gerçek http oturumu almak.

İşte ilgili jQuery (Kopyala/Yapıştır istiyorsanız kodu aşağı aşağıda kopyaladığım):

image

Onlar ilk anahtarıdır hem de içerecek şekilde bir <queryOptions> ve <QueryOptions> düğüm.  Bu ikinci anahtarıdır <Klasör> düğüm istemci erişimi olan bir url..

Bu almak için başka yollar olabilir, ama bu amele su kuyusu için beni ne zaman jQuery kullanarak.

İşte yukarıdaki için soap Zarfı:

<soapenv:Zarf xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Vücut>
    <GetListItems xmlns =’
http://schemas.microsoft.com/SharePoint/SOAP/’>
      <listName>Alt klasörler içeren özel bir liste</listName>
      <viewFields>  
        <ViewFields>
          <FIELDREF Name =' başlığı’ />
          <FIELDREF Name ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Klasör>
http://demoserver1/blog Senaryo/listeleri/özel liste ile alt klasörler/yıl 2006</Klasör>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Vücut>
</soapenv:Zarf>

Örnekler ve bu tartışma çok bana tüm ihtiyacım olduğuna inanmak yol açtı <QueryOptions> ve bir klasör adı belirtin.  Benim için, [NULL]'Sarmak hem de içine <queryOptions> hem de tam bir url belirtin <Klasör> düğüm.

İşte jQuery ajax kurulumu:

$(Belge).hazır(işlevi() {
       var soapEnv =
           "<soapenv:Zarf xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Vücut> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/SharePoint/SOAP/’> \
                       <listName>Alt klasörler içeren özel bir liste</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FIELDREF Name =' başlığı’ /> \
                              <FIELDREF Name ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Klasör>http://demoserver1/Blogging Senaryo/listeleri/özel liste ile alt klasörler/yıl 2006</Klasör> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Vücut> \
           </soapenv:Zarf>";

</sonunda>

Benim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

6 “Üzerine düşüncelerLists.asmx, GetListItems ve klasörler

  1. Daniel

    Merhaba

    Belgeleri bir SPD kullanarak belirli bir klasör altında görüntülemek çalışıyorum 2010 Veri kaynağı GetListItems

    Bir kez için benim web servisine baðlanýn ve belge kitaplığı için GUID girin
    Ben QueryOptions değiştirmek ve CAML aşağıdaki parça girin
    Uygunluk TrainingCompanyX.

    Sadece bu herhangi bir sonuç döndürmüyor – QueryOptions parametresi kaldırma tüm belgeleri kök belge kitaplığında döndürür….

    Ben bazı tür geçen seyir parametre görüntülemek ve görünümü GUID içerir.

    Yanıtla
    1. Paul Galvin Mesaj yazar

      Bu bir çok eski mesaj/yorum asla yanıtlarken için çok üzgünüm olduğunu. Sanırım uzun zamandan beri devam nasıl buldum.

      Yanıtla
  2. Bob Bolton

    Tamam, Görünüşe göre xml çıkardı… Sadece aşağıda pound işareti yerine köşeli çift ayraçları ile.

    #queryOptions #
    #QueryOptions #
    #ViewAttributes kapsam 'RecursiveAll' = / #
    #/QueryOptions #
    #/queryOptions #

    Yanıtla
  3. Doug

    Bu yazı için teşekkür a demet, Paul. ColdFusion cfhttp via GetListItems tüketmeye çalışıyorum, ve zarfın doğru alamadım. Sonunda deve karşıdan karşıya bu posta, ve sizi örnek sorunsuz çalıştı. Teşekkür bir daha.

    Yanıtla
  4. Doug

    BTW – tüm uygun soap zarflar listeleyen bir kaynak, biliyor musun? Microsoft.com üzerinde yayınlanan GetList öğeler için bir maç değil burada…

    Yanıtla

Bir yanıt bırak Paul Galvin Cevabı iptal

E-posta hesabınız yayımlanmayacak. Gerekli alanlar işaretlendi *