Tag Archives: lists.asmx

Lists.asmx, GetListItems agus Fillteáin

Bhí mé ag déanamh roinnt taighde a dhéanamh do dhuine lá atá inniu ann ar fud na seirbhíse gréasáin list.asmx ar fáil mar chuid de SharePoint 2010 (agus níos luaithe).  Bhí sí in ann a fháil ar na míreanna liosta ag an fillteán fhréamh (lena n-áirítear ainmneacha na fo-fhillteáin), Ní fhéadfaí ach a fháil míreanna i bhfo-folders.  I raibh roinnt féachaint timpeall ar an Internets agus tá sé ina ceist ionadh coiteann.  Ach, Ní raibh mé in ann freagra maith a fháil chun an cheist shimplí, "Má tá a fhios agam an fillteán, conas is féidir liom a fháil ar na míreanna san fhillteán?"  Chun a bheith macánta, Ní raibh mé iarracht a dhéanamh go léir go crua ó bhí mé ag iarraidh chun an figiúr seo ar cheann amach ar mo chuid féin ar feadh tamaill Smile.

A shocrú suas seo, Chruthaigh mé suíomh ainmnithe "Cásanna Blagadóireacht" agus liosta saincheaptha darb ainm "Liosta Chustaim le Fillteáin Fo".  Chruthaigh mé ansin fillteáin ainmnithe:

  • Bliain 2005
  • Bliain 2006
  • Bliain 2007

Dúirt mé freisin ar roinnt rudaí ar an bhfillteán "Bliain 2006".  Is é seo a tá sé cosúil:

image

Níl mo chara ag scríobh C # cód ach úsáid a bhaint as Java, mar sin bhí an clúdach gallúnach cad a theastaíonn sí i ndáiríre.  Chun a fháil go, Scríobh mé beagán de jQuery agus ansin a úsáidtear fidléir a fháil ar an iarbhír HTTP chomhrá.

Seo an jQuery ábhartha (Chóipeáil mé an cód síos thíos más mian leat a chóipeáil / greamaigh):

image

Tá siad an chéad eochair a chur san áireamh araon <queryOptions> agus <QueryOptions> nód.  Is í an eochair dara go bhfuil an <Fillteán> Is nód URL chun a bhfuil an cliant le rochtain.

D'fhéadfadh go mbeadh slite eile a fháil ar an, ach d'oibrigh sé sin go maith dom nuair a úsáid jQuery.

Seo é an clúdach gallúnach le haghaidh na nithe thuas:

<soapenv:Xmlns Clúdach:soapenv =’http://schemas.xmlsoap.org / gallúnach / clúdach /’>                
  <soapenv:Comhlacht>
    <Xmlns = GetListItems’
http://schemas.microsoft.com / SharePoint / gallúnach /’>
      <listname>Liosta Chustaim le Fillteáin Fo</listname>
      <viewFields>  
        <ViewFields>
          <FieldRef Ainm = 'Teideal’ />
          <FieldRef Ainm = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Fillteán>
http://demoserver1/Blogging Cásanna / liostaí / Liosta Chustaim le Fillteáin Fo / Bliain 2006</Fillteán>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Comhlacht>
</soapenv:Clúdach>

A lán de na samplaí agus plé ar fud seo faoi stiúir dom chun a chreidiúint go raibh go léir is gá dom a <QueryOptions> agus a shonrú ainm fillteán.  Maidir liom féin, Is gá dom a araon wrap sé taobh istigh <queryOptions> chomh maith a shonrú mar URL lán-cháilithe don <Fillteán> nód.

Seo an jQuery AJAX thus:

$(doiciméad).réidh(fheidhm() {
       Bhí soapEnv =
           "<soapenv:Xmlns Clúdach:soapenv =’http://schemas.xmlsoap.org / gallúnach / clúdach /’> \
               <soapenv:Comhlacht> \
                    <Xmlns = GetListItems’http://schemas.microsoft.com / SharePoint / gallúnach /’> \
                       <listname>Liosta Chustaim le Fillteáin Fo</listname> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Ainm = 'Teideal’ /> \
                              <FieldRef Ainm = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Fillteán>http://demoserver1/Blogging Cásanna / liostaí / Liosta Chustaim le Fillteáin Fo / Bliain 2006</Fillteán> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Comhlacht> \
           </soapenv:Clúdach>";

</deireadh>

Liostáil le mo bhlag.

Lean mé ar Twitter ag http://www.twitter.com/pagalvin

Lists.asmx, Ní féidir GetList agus "Luach a bheith null”

Fuair ​​mé amach inniu go bhfuil an GetList() modh i lists.asmx Tá seirbhís gréasáin a bheith ar a dtugtar go han-chúramach nó tá sé seans maith le caith mistéireach "Luach ní féidir a bheith null" eisceacht (agus go bhfuil glacadh leis gur féidir leat a fháil anuas ar an teachtaireacht earráide níos measa fós cineálach, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ Bhí thrown. ")  Go sonrach, Chinn mé nach féidir leat a chur ar fáil de chineál ar bith réimír ar an modh GetList.  Léiríonn an Blúire jQuery seo a leanas an pointe:

image

Má dhéanann tú sin, bhfreagraíonn an tseirbhís gréasáin le "Ní féidir luach a bheith null" de réir an fidléir-ar choinníoll HTTP athscríbhinn:

<?xml version = "1.0" encoding="utf-8"?>
  <gallúnach:Clúdach
     xmlns:gallúnach ="
http://schemas.xmlsoap.org / gallúnach / clúdach /"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <gallúnach:Comhlacht>
    <gallúnach:Locht>
      <faultcode>gallúnach:Freastalaí</faultcode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ bhí thrown.
      </faultstring>
      <mion>
        <xmlns teaghrán earráid ="
http://schemas.microsoft.com / SharePoint / gallúnach /">
Ní féidir luach a bheith ar neamhní.
        </errorstring>
      </mion>
    </gallúnach:Locht>
  </gallúnach:Comhlacht>
</gallúnach:Clúdach>

Ar ndóigh,, nach mbeadh tú a chur ar dócha go bhfuil "S0" réimír ar do chuid féin, ach tá roinnt uirlisí seans maith é a dhéanamh (cosúil Eclipse).

Is é seo go léir an níos mearbhall / frustrating toisc modhanna eile fhulaingt réimíreanna.  Mar shampla, an GetListCollection Ní modh aigne má tá sé curtha réimír, fiú le réimíreanna nonsense cosúil le "xyzzy":

image

Seo "Ní féidir luach a bheith null" Is cosúil go coitianta go leor le lists.asmx sin tá súil againn go mbeidh sé seo cabhrú le duine éigin amach sa todhchaí.

</deireadh>

Liostáil le mo bhlag.

Lean mé ar Twitter ag http://www.twitter.com/pagalvin