Tag Archives: SharePoint वेब सेवाएं

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