Etikedaj Arkivoj: SharePoint Araneaĵaj Servoj

Listoj.Asmx, GetListItems kaj Tekoj

Mi estis faranta iun esploron por iu hodiaŭ ĉirkaŭ la listo.Asmx araneaĵa servo provizita kiel parto de SharePoint 2010 (Kaj antaŭe).  Ŝi estis kapabla akiri la listajn erojn ĉe la radika teko (Inkluzivanta la nomojn de sub-tekoj), Sed ne povus akiri erojn en sub-tekoj.  Mi faris kelkajn rigardantan proksimume sur la interretoj kaj ĝi estas surprize ofta demando.  Ankoraŭ, Mi ne povus akiri bonan respondon al la simpla demando, “Se mi scias la tekon, Kiel mi akiras la eroj en la teko?”  Esti honesta, Mi ne provis ĉiuj tiu malfacila pro tio ke mi deziris kalkuli ĉi tiu unu ekstere sur mia propra por momento rideto.

Instali tion ĉi, Mi kreis ejon nomis “Blogging Scenaroj” kaj laŭmenda listo nomis “Laŭmendan Liston kun Sub Tekoj”.  Mi tiam kreis tekojn nomis:

  • Jaro 2005
  • Jaro 2006
  • Jaro 2007

Mi aldonis kelkajn erojn al la teka “Jaro 2006”.  Tio ĉi estas kio ĝi similas:

image

Mia amiko ne estas skribanta C# kodon sed prefere uzanta Java, Do la SAPA koverto estis kio ŝi vere devis.  Akiri tion, Mi skribis iom de jQuery kaj tiam uzita fiddler akiri la realan HTTPan konversacion.

Ĉi tie-a la rilata jQuery (Mi kopiis la kodon sube se vi deziras kopii/almeti):

image

Ili unue kerna estas inkluzivi ambaŭ <QueryOptions> Kaj <QueryOptions> Nodo.  La dua ŝlosilo estas ke la <Teko> Nodo estas URL al kiu la kliento havas aliron.

Tie povas esti aliaj vojoj akiri tion ĉi, Sed tio ĉi laboris bone por mi kiam uzanta jQuery.

Ĉi tie estas la SAPA koverto por la supra:

<Soapenv:Koverto xmlns:Soapenv=’Http://Schemas.Xmlsoap.Org/sapa/koverto/’>                
  <Soapenv:Korpo>
    <GetListItems xmlns=’
Http://Schemas.Microsoft.Com/sharepoint/sapo/’>
      <ListName>Laŭmenda Listo kun Sub Tekoj</ListName>
      <ViewFields>  
        <ViewFields>
          <FieldRef Nomo='Titolo’ />
          <FieldRef Nomo='EncodedAbsUrl’ />
        </ViewFields>
      </ViewFields>
      <QueryOptions>
        <QueryOptions>
          <Teko>
Http://Demoserver1/Blogging Scenaroj/enlistigas/Laŭmendan Liston kun Sub Teka/Jaro 2006</Teko>
        </QueryOptions>
      </QueryOptions>
   
</GetListItems>
  </Soapenv:Korpo>
</Soapenv:Koverto>

Multaj ekzemploj kaj diskuto ĉirkaŭ tio ĉi gvidis min kredi ke ĉiuj mi devas estis <QueryOptions> Kaj specifi tekan nomon.  Por mi, Mi devas al ambaŭ mantelo ĝi interne <QueryOptions> Tiel kiel specifas plene kvalifikita URL por la <Teko> Nodo.

Ĉi tie-a la jQuery AJAXa aranĝo:

$(Dokumento).Preta(Funkcio() {
       Var soapEnv =
           "<Soapenv:Koverto xmlns:Soapenv=’Http://Schemas.Xmlsoap.Org/sapa/koverto/’> \
               <Soapenv:Korpo> \
                    <GetListItems xmlns=’Http://Schemas.Microsoft.Com/sharepoint/sapo/’> \
                       <ListName>Laŭmenda Listo kun Sub Tekoj</ListName> \
                       <ViewFields> \
                           <ViewFields> \
                              <FieldRef Nomo='Titolo’ /> \
                              <FieldRef Nomo='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </ViewFields> \
                       <QueryOptions> \
                         <QueryOptions> \
                           <Teko>http://demoserver1/Blogging Scenaroj/enlistigas/Laŭmendan Liston kun Sub Teka/Jaro 2006</Teko> \
                         </QueryOptions> \
                       </QueryOptions> \
                   </GetListItems> \
               </Soapenv:Korpo> \
           </Soapenv:Koverto>";

</Fino>

Aboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin