Archifau Categori: SharePoint Gwasanaethau We

Sut i Nodwch Pobl fel Cwmpas Chwilio / Cynnwys Ffynhonnell Defnyddio SharePoint 2013 REST API

Cefais reswm i weithio gyda y SharePoint 2013 API chwilio drwy weddill am y tro cyntaf. Yr oeddwn yn chwilio am bobl, Nid dogfennau. Allweddol dysgu yma yw Nodwch ffynonellau cynnwys drwy ei GUID (neu o leiaf yn yr achos hwn). Y sioeau beintiwyd jQuery canlynol sut:

    loadExpertsAsync: swyddogaeth() {

        jQuery.support.cors = wir;

        $.AJAX({
            url: hwn.CreateFullApiUrl() +
                "?querytext = 'pyrth'&sourceid = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Sgiliau,AboutMe,Buddiannau,Teitl y swydd,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&rowlimit = 99",
            dull: "GAEL",
            Penynnau: { "Derbyn": "cais/json; odata = amleiriog" },
            storfa: ffug,
            llwyddiant: swyddogaeth (arwain) {

Yn fy achos, Yr wyf yn rhedeg y API erbyn SharePoint ar-lein. I gael y GUID, Dilynais y camau hyn:

  1. Mynediad i'r ganolfan gweinyddol SharePoint
  2. Dewiswch "chwilio" o'r mordwyo chwith
  3. Dewiswch "Canlyniad ffynonellau reoli'r"
  4. Dewiswch "Canlyniadau pobl leol"
  5. Edrychwch ar yr URL.

Fy URL edrych rhywbeth fel:

https://xyzzy-admin.sharepoint.com/_layouts/15/searchadmin/EditResultSource.aspx?level=tenant&sourceid=b09a7990%2D05ea%2D4af9%2D81ef%2Dedfab16c4e31&view=1

Paramedr sourceid yw hyn wedi gweithio i mi.

(Deallaf y gall y sourceid mewn gwirionedd yn rhyw fath o peth parhaol gyda SP, ond byddaf bob amser yn gwirio beth bynnag 🙂 ).

</diwedd>

undefinedTanysgrifio i fy mlog.

Dilynwch fi ar Twitter yn http://www.twitter.com/pagalvin

Lists.asmx, GetListItems a Folders

Roeddwn yn gwneud rhywfaint o waith ymchwil i rywun heddiw o amgylch y gwasanaeth we list.asmx a ddarperir fel rhan o SharePoint 2010 (ac yn gynharach).  Roedd hi'n gallu cael yr eitemau rhestr ar y ffolder wraidd (gan gynnwys enwau is-ffolderi), ond ni allai gael eitemau yn is-ffolderi.  I ddim yn rhai edrych o gwmpas ar y internets ac mae'n gwestiwn rhyfeddol o gyffredin.  Eto, Nid oeddwn yn gallu cael ateb da i'r cwestiwn syml, "Os wyf yn gwybod y ffolder, sut ydw i'n cael y eitemau yn y ffolder?"  I fod yn onest, Doeddwn i ddim yn ceisio bob un sy'n caled ers i mi wedi bod eisiau i ffigur hwn allan ar fy mhen fy hun am gyfnod Smile.

I osod hyn i fyny, Yr wyf yn creu safle o'r enw "Senarios Blogio" a rhestr arfer o'r enw "Rhestr Custom gyda Is Folders".  Yna greu ffolderi a enwir:

  • Blwyddyn 2005
  • Blwyddyn 2006
  • Blwyddyn 2007

I ychwanegu ychydig o eitemau at 'r folder "Blwyddyn 2006".  Dyma sut mae'n edrych:

image

Nid yw fy ffrind yn ysgrifennu C # cod, ond yn hytrach gan ddefnyddio Java, felly yr amlen SOAP oedd beth oedd gwir angen.  Er mwyn cael y, Ysgrifennais ychydig o jQuery ac a ddefnyddir wedyn ffidlwr i gael y sgwrs HTTP gwirioneddol.

Dyma y jQuery perthnasol (I gopïo y cod i lawr isod os ydych am gopi / past):

image

Maent yn allweddol cyntaf yw cynnwys ill dau <queryOptions> a <QueryOptions> nod.  Yr ail allweddol yw bod y <Folder> nod yw URL y mae gan y cleient fynediad.

Gall fod ffyrdd eraill o gael y, ond mae hyn yn gweithio'n dda i mi wrth ddefnyddio jQuery.

Dyma'r amlen SOAP ar gyfer yr uchod:

<soapenv:Xmlns Amlen:soapenv =’http://schemas.xmlsoap.org / sebon / amlen /’>                
  <soapenv:Corff>
    <Xmlns GetListItems =’
http://schemas.microsoft.com / sharepoint / sebon /’>
      <Collddail>Rhestr Custom gyda Is-Folders</Collddail>
      <viewFields>  
        <ViewFields>
          <FieldRef Enw = 'Teitl’ />
          <FieldRef Enw = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/Blogging Senarios / rhestrau / Rhestr Custom gyda Is Folders / Flwyddyn 2006</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Corff>
</soapenv:Amlen>

Mae llawer o enghreifftiau a thrafodaeth o gwmpas hyn fy arwain i gredu bod yr holl ei angen arnaf yn <QueryOptions> ac yn nodi enw ffolder.  I mi, Mae angen i'r ddau lapio y tu mewn i <queryOptions> yn ogystal â nodi URL hollol gymwys ar gyfer y <Folder> nod.

Dyma y setup AJAX jQuery:

$(dogfen).barod(swyddogaeth() {
       Roedd soapEnv =
           "<soapenv:Xmlns Amlen:soapenv =’http://schemas.xmlsoap.org / sebon / amlen /’> \
               <soapenv:Corff> \
                    <Xmlns GetListItems =’http://schemas.microsoft.com / sharepoint / sebon /’> \
                       <Collddail>Rhestr Custom gyda Is-Folders</Collddail> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Enw = 'Teitl’ /> \
                              <FieldRef Enw = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging Senarios / rhestrau / Rhestr Custom gyda Is Folders / Flwyddyn 2006</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Corff> \
           </soapenv:Amlen>";

</diwedd>

Tanysgrifio i fy mlog.

Dilynwch fi ar Twitter yn http://www.twitter.com/pagalvin

Lists.asmx, Ni all GetList a "Gwerth yn null”

Wnes i ddarganfod heddiw fod y GetList() dull yn lists.asmx gwasanaeth ar y we wedi ei alw yn ofalus iawn, neu ei fod yn dueddol i daflu dirgel "Gwerth Ni all fod yn null" eithriad (ac sy'n cael ei dybio gallwch gael heibio i'r neges gwall hyd yn oed yn waeth generig, "Eithriad o'r math ' Microsoft.SharePoint.SoapServer.SoapServerException’ ei daflu. ")  Yn benodol, Rwy'n dod o hyd na allwch ddarparu unrhyw fath o ragddodiad ar y dull GetList.  Mae'r snippet jQuery canlynol yn dangos y pwynt:

image

Os byddwch yn gwneud hynny, y gwasanaeth ar y we yn ymateb gyda "Ni all Gwerth yn null" yn unol hon ffidlwr-darparu trawsgrifiad HTTP:

<?Fersiwn XML = "1.0" amgodio = "utf-8"?>
  <sebon:Amlen
     xmlns:sebon ="
http://schemas.xmlsoap.org / sebon / amlen /"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd ="
http://www.w3.org/2001/XMLSchema">

  <sebon:Corff>
    <sebon:Diffygion>
      <faultcode>sebon:Gweinydd</faultcode>
      <faultstring>
        Eithriad o'r math ' Microsoft.SharePoint.SoapServer.SoapServerException’ ei daflu.
      </faultstring>
      <manylion>
        <xmlns llinyn gwall ="
http://schemas.microsoft.com / sharepoint / sebon /">
Ni all Gwerth yn null.
        </errorstring>
      </manylion>
    </sebon:Diffygion>
  </sebon:Corff>
</sebon:Amlen>

Wrth gwrs, mae'n debyg na fyddai ychwanegu bod "S0" rhagddodiad ar eich pen eich hun, ond mae rhai offer yn tueddu i wneud hynny (fel Eclipse).

Mae hyn yn y mwyaf i gyd ddryslyd / rhwystredig oherwydd bod dulliau eraill goddef rhagddodiaid.  Er enghraifft, y GetListCollection Nid oes ots os yw'n dull wedi bod yn rhagddodi, hyd yn oed gyda rhagddodiaid nonsens fel "xyzzy":

image

Mae hyn yn "Ni all fod yn werth null" yn ymddangos yn eithaf cyffredin gyda lists.asmx felly gobeithio y bydd hyn yn helpu rhywun allan yn y dyfodol.

</diwedd>

Tanysgrifio i fy mlog.

Dilynwch fi ar Twitter yn http://www.twitter.com/pagalvin