Lists.asmx, GetListItems और फ़ोल्डर्स

मैं SharePoint के भाग के रूप में प्रदान की आज list.asmx वेब सेवा के आसपास किसी के लिए कुछ शोध कर रहा था 2010 (और इससे पहले).  वह सूची आइटम को रूट फ़ोल्डर में प्राप्त करने में सक्षम था (उप फ़ोल्डर्स के नाम सहित), लेकिन उप फ़ोल्डर्स में आइटम्स नहीं मिल सका।  मैं कुछ internets पर चारों ओर देख रहा था और यह एक आश्चर्य की बात आम सवाल है।  अभी तक, मैं सरल प्रश्न के लिए एक अच्छा जवाब नहीं मिल सका, अगर मैं फ़ोल्डर पता", मैं उस फ़ोल्डर में आइटम कैसे मिलता है?”  ईमानदार होना करने के लिए, मैं थोड़ी देर के लिए मेरी अपनी पर इस एक बाहर आंकड़ा करने के लिए चाहता है के बाद से मैं कोशिश कि सभी कठिन नहीं था मुस्कुराओ.

इस सेट अप करने के लिए, मैं एक साइट "ब्लॉगिंग परिदृश्यों" नाम दिया और "उप फ़ोल्डर्स के साथ कस्टम सूची" नामक एक कस्टम सूची बनाई।  मैं तो नाम फ़ोल्डर बनाया:

  • वर्ष 2005
  • वर्ष 2006
  • वर्ष 2007

मैं कुछ आइटम्स फ़ोल्डर में जोड़े "वर्ष 2006 '।  यह है क्या यह की तरह लग रहा है:

image

मेरे दोस्त सी # कोड लिख नहीं है, लेकिन बल्कि जावा का प्रयोग, तो क्या वह वास्तव में जरूरत SOAP एनवलप था।  कि प्राप्त करने के लिए, मैं jQuery का एक सा लिखा था और फिर सारंगी बजानेवाला वास्तविक HTTP बातचीत करने के लिए प्रयुक्त.

यहाँ प्रासंगिक jQuery है (यदि आप कॉपी/पेस्ट करना चाहते हैं मैं कोड नीचे नीचे नकल):

image

वे पहली कुंजी है दोनों को शामिल करने के लिए एक <queryOptions> और <QueryOptions> नोड।  दूसरा प्रमुख है कि <फ़ोल्डर> नोड एक यूआरएल जो करने के लिए क्लाइंट तक पहुँच गया है.

इस प्राप्त करने के लिए अन्य तरीके हो सकते हैं, लेकिन यह मेरे लिए अच्छी तरह से काम किया है jQuery का उपयोग करते समय.

यहाँ SOAP एनवलप इसके बाद के संस्करण के लिए है:

<soapenv:लिफ़ाफ़ा xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:शरीर>
    <GetListItems xmlns =’
http://schemas.microsoft.com/sharepoint/soap/’>
      <listName>उप फ़ोल्डर्स के साथ कस्टम सूची</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef नाम =' शीर्षक’ />
          <FieldRef नाम ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <फ़ोल्डर>
http://demoserver1/ब्लॉगिंग उप फ़ोल्डर्स/वर्ष 2006 के साथ परिदृश्यों/सूची/कस्टम सूची</फ़ोल्डर>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:शरीर>
</soapenv:लिफ़ाफ़ा>

उदाहरण हैं और इस के आसपास चर्चा का एक बहुत कुछ के नेतृत्व में मुझे विश्वास है कि मैं सभी की जरूरत थी <QueryOptions> और एक फ़ोल्डर नाम निर्दिष्ट करें।  मेरे लिए, मैं दोनों के लिए अंदर इसे लपेटो की जरूरत है <queryOptions> रूप में अच्छी तरह के रूप में एक पूर्ण क्वालीफ़ाइड URL के लिए निर्दिष्ट करें <फ़ोल्डर> नोड.

यहाँ jQuery AJAX सेटअप है:

$(दस्तावेज़).तैयार(समारोह() {
       var soapEnv =
           "<soapenv:लिफ़ाफ़ा xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:शरीर> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/sharepoint/soap/’> \
                       <listName>उप फ़ोल्डर्स के साथ कस्टम सूची</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef नाम =' शीर्षक’ /> \
                              <FieldRef नाम ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <फ़ोल्डर>http://demoserver1/Blogging उप फ़ोल्डर्स/वर्ष 2006 के साथ परिदृश्यों/सूची/कस्टम सूची</फ़ोल्डर> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:शरीर> \
           </soapenv:लिफ़ाफ़ा>";

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

6 पर विचार "Lists.asmx, GetListItems और फ़ोल्डर्स

  1. डैनियल

    नमस्ते

    मैं एक एसपीडी का उपयोग कर एक विशिष्ट फ़ोल्डर के अंतर्गत दस्तावेज़ों को प्रदर्शित करने के लिए कोशिश कर रहा हूँ 2010 डेटास्रोत GetListItems

    एक बार मुझे मेरी वेब सेवा से कनेक्ट करने के लिए और दस्तावेज़ लायब्रेरी के लिए guid दर्ज करें
    मैं QueryOptions को संशोधित कर सकते हैं और CAML के निम्नलिखित टुकड़ा में प्रवेश
    अनुपालन TrainingCompanyX.

    केवल यह किसी भी परिणाम वापस नहीं करता है – QueryOptions पैरामीटर को हटाने सभी दस्तावेजों को मूल दस्तावेज़ लायब्रेरी में रिटर्न….

    रहा हूँ मैं तलाश में से कुछ की तरह गुजर जाने पर पैरामीटर को देखने और दृश्य guid में शामिल हैं.

  2. डौग

    इस पोस्ट के लिए एक गुच्छा धन्यवाद, पॉल. मैं GetListItems ColdFusion cfhttp के जरिए उपभोग करने के लिए कोशिश कर रहा हूँ, और ई-मेल लिफ़ाफ़े का अधिकार मिल नहीं सका. अंततः इस पोस्ट भर में आया था, और यह flawlessly काम किया अपने उदाहरण. एक बार फिर धन्यवाद.

  3. डौग

    BTW – आप सभी उचित साबुन लिफ़ाफ़ों को सूचीबद्ध करता एक संसाधन का पता है? Microsoft.com पर प्रकाशित GetList मदों के लिए एक मैच नहीं तुम यहाँ कर रहे हैं…

कोई जवाब दो

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. अपेक्षित स्थानों को रेखांकित कर दिया गया है *