ట్యాగ్ ఆర్కైవ్స్: lists.asmx

Lists.asmx, GetListItems మరియు ఫోల్డర్లు

నేను SharePoint భాగంగా అందించిన list.asmx వెబ్ సేవ చుట్టూ నేడు ఎవరైనా కోసం కొన్ని పరిశోధన చేస్తున్న 2010 (అంతకు ముందువి).  ఆమె రూట్ ఫోల్డర్ లో జాబితా అంశాలను పొందడానికి చేయగలిగాడు (ఉప ఫోల్డర్లను పేర్లు సహా), కానీ ఉప అంశాలు పొందుటకు కాలేదు.  నేను కొన్ని ఇంటర్నెట్ల చుట్టూ చూస్తున్న లేదు మరియు అది ఒక ఆశ్చర్యకరంగా సాధారణ ప్రశ్న.  ఇప్పటికీ, నేను సాధారణ ప్రశ్నకు ఒక మంచి సమాధానం పొందుటకు కాలేదు, "నేను ఫోల్డర్ తెలిస్తే, ఎలా నేను ఫోల్డర్ ఐటెమ్లను పొందుటకు లేదు?"  నిజాయితీ ఉండాలి, నేను కాసేపు నా స్వంతంగా ఒక అవ్ట్ దొరుకుతుందని కోరుకున్నాను నుండి నేను ఆ హార్డ్ ప్రయత్నించండి లేదు స్మైల్.

ఈ ఏర్పాటు, నేను "బ్లాగింగ్ విధానాలపై" మరియు "ఉప ఫోల్డర్లు తో కస్టమ్ జాబితా" అనే కస్టమ్ జాబితా అనే సైట్ రూపొందించినవారు.  నేను అనే ఫోల్డర్ రూపొందించినవారు:

  • సంవత్సరము 2005
  • సంవత్సరము 2006
  • సంవత్సరము 2007

నేను ఫోల్డర్ "ఇయర్ 2006" కొన్ని అంశాలు జోడించబడ్డాయి.  ఇది కనిపిస్తుంది ఏమిటి:

image

నా స్నేహితుడు సి # కోడ్ వ్రాయడం కానీ జావా ఉపయోగించని, కాబట్టి SOAP కవచ ఆమె నిజంగా అవసరం ఏమిటి.  ఆ పొందుటకు, నేను j క్వెరీ ఒక బిట్ రాశాడు మరియు తర్వాత నిజమైన HTTP సంభాషణ పొందుటకు FIDDLER ఉపయోగిస్తారు.

సంబంధించిన j క్వెరీ వార్తలు (మీరు అతికించండి / కాపీ అనుకుంటే నేను క్రింద కోడ్ డౌన్ కాపీ):

image

వారు మొదటి కీ ఒక చేర్చడాన్ని ఉంది <queryOptions> మరియు <QueryOptions> నోడ్.  రెండవ కీ అని <ఫోల్డర్> నోడ్ ఇది క్లయింట్ యాక్సెస్ కలిగిన ఒక URL ఉంది.

ఈ పొందుటకు ఇతర మార్గాలు ఉండవచ్చు, j క్వెరీ ఉపయోగించి కానీ ఈ నాకు బాగా పని.

ఇక్కడ పైన కోసం SOAP కవచ ఉంది:

<soapenv:ఎన్వలప్ xmlns:soapenv =’http://schemas.xmlsoap.org / సబ్బు / కవచ /’>                
  <soapenv:శరీరం>
    <GetListItems xmlns =’
http://schemas.microsoft.com / SharePoint / సబ్బు /’>
      <రాలునట్టి>సబ్ ఫోల్డర్లు అనుకూల జాబితా</రాలునట్టి>
      <viewFields>  
        <ViewFields>
          <FieldRef పేరు = 'శీర్షిక’ />
          <FieldRef పేరు = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <ఫోల్డర్>
http://demoserver1/Blogging దృశ్యాలు / జాబితాలు / సబ్ ఫోల్డర్లు / ఇయర్ 2006 కస్టమ్ జాబితా</ఫోల్డర్>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:శరీరం>
</soapenv:పైకాకితము>

దీనితో ఉదాహరణలు మరియు చర్చ చాలా నాకు అవసరం అన్ని విశ్వసించడానికి దారితీసింది <QueryOptions> మరియు ఒక ఫోల్డర్ పేరు పేర్కొనండి.  నాకు, నేను రెండు చుట్టు అది లోపల అవసరం <queryOptions> అలాగే ఒక పూర్తి అర్హత ఉన్న URL తెలుపుటకు <ఫోల్డర్> కాండము నుండి ఆకు వచ్చు బోడిపే.

ఇక్కడ j క్వెరీ AJAX సెటప్ వార్తలు:

$(పత్రం).సిద్ధంగా(ఫంక్షన్() {
       soapEnv = ఉంది
           "<soapenv:ఎన్వలప్ xmlns:soapenv =’http://schemas.xmlsoap.org / సబ్బు / కవచ /’> \
               <soapenv:శరీరం> \
                    <GetListItems xmlns =’http://schemas.microsoft.com / SharePoint / సబ్బు /’> \
                       <రాలునట్టి>సబ్ ఫోల్డర్లు అనుకూల జాబితా</రాలునట్టి> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef పేరు = 'శీర్షిక’ /> \
                              <FieldRef పేరు = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <ఫోల్డర్>http://demoserver1/Blogging దృశ్యాలు / జాబితాలు / సబ్ ఫోల్డర్లు / ఇయర్ 2006 కస్టమ్ జాబితా</ఫోల్డర్> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:శరీరం> \
           </soapenv:పైకాకితము>";

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.

వద్ద ట్విట్టర్ లో నన్ను అనుసరించండి http://www.twitter.com/pagalvin

Lists.asmx, GetList మరియు "విలువ శూన్య ఉండకూడదు”

నేను ఈ రోజు కనుగొన్నాడు GetList() లో విధానం lists.asmx వెబ్ సేవ చాలా జాగ్రత్తగా అని వుంటుంది లేదా మినహాయింపు "శూన్య ఉండకూడదు విలువ" అది ఒక రహస్యమైన త్రో బట్టి వార్తలు (మరియు ఊహిస్తూ ఆ మీరు చెత్తగా సాధారణ దోష సందేశం గత పొందవచ్చు, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ విసిరి జరిగినది. ")  ముఖ్యంగా, నేను మీరు GetList పద్ధతి ఉపసర్గ ఎలాంటి ఇవ్వలేము కనుగొన్నారు.  కింది j క్వెరీ స్నిప్పెట్ విషయాన్ని ఉదహరిస్తుంది:

image

మీరు ఇలా చేస్తే, వెబ్ సేవ ఈ ప్రకారం "విలువ శూన్య ఉండకూడదు" అంటాడు ఇంగ్లీషు సారంగి వాయించేవాడు-HTTP ట్రాన్స్క్రిప్ట్ అందించిన:

<?xml version="1.0" encoding="utf-8"?>
  <సబ్బు:పైకాకితము
     xmlns:సబ్బు ="
http://schemas.xmlsoap.org / సబ్బు / కవచ /"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <సబ్బు:శరీరం>
    <సబ్బు:నేరము>
      <faultcode>సబ్బు:సర్వర్</faultcode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ విసిరిన.
      </faultstring>
      <వివరముగా>
        <errorstring xmlns ="
http://schemas.microsoft.com / SharePoint / సబ్బు /">
విలువ శూన్య ఉండకూడదు.
        </errorstring>
      </వివరముగా>
    </సబ్బు:నేరము>
  </సబ్బు:శరీరం>
</సబ్బు:పైకాకితము>

కోర్సు యొక్క, మీరు బహుశా మీ స్వంత ఆ "s0" ఉపసర్గ జోడించడానికి కాదు, కానీ కొన్ని టూల్స్ దీన్ని బట్టి ఉంటాయి (ఎక్లిప్స్ వంటి).

ఈ అన్ని మరింత గందరగోళంగా ఉంది / ఇతర పద్ధతులు ప్రిఫిక్సెస్ తట్టుకోలేని ఎందుకంటే విసుగుని.  ఉదాహరణ కోసం, ఆ GetListCollection ఇది ముందు అయితే పద్ధతి చూసుకొని లేదు, కూడా "xyzzy" వంటి అర్ధంలేని పూర్వప్రత్యయంగా:

image

ఈ lists.asmx మంచి సాధారణ తెలుస్తోంది "విలువ శూన్య ఉండకూడదు" కాబట్టి ఆశాజనక ఈ భవిష్యత్తులో ఎవరైనా సహాయం చేస్తుంది.

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.

వద్ద ట్విట్టర్ లో నన్ను అనుసరించండి http://www.twitter.com/pagalvin