Arxius de la categoria: Serveis de SharePoint de Web

Com especificar la gent com un àmbit de cerca / Origen de contingut utilitzant SharePoint 2013 RESTA API

Jo tenia raons per treballar amb el SharePoint 2013 L'API de cerca mitjançant resta per primera vegada. Volia Cercar persones, documents de no. La clau aquí és que l'aprenentatge que especifiqueu els orígens de contingut mitjançant la seva GUID (o almenys en aquest cas). El jQuery següent fragment Mostra com:

    loadExpertsAsync: funció() {

        jQuery.support.cors = True;

        $.Ajax({
            URL: això.CreateFullApiUrl() +
                "?querytext = "portals"&SourceId = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties = "LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Habilitats,AboutMe,Interessos,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&RowLimit = 99",
            mètode: "ACONSEGUIR",
            capçaleres: { "Acceptar": "aplicació/json; OData = depuraci ≤" },
            memòria cau: fals,
            èxit: funció (resultat) {

En el meu cas, Estic corrent l'API contra SharePoint en línia. Per obtenir el GUID, He seguit aquests passos:

  1. Accés al centre d'administració del SharePoint
  2. Seleccioneu "Cerca" de la mà esquerra navegació
  3. Seleccioneu "Administra resultat fonts"
  4. Seleccioneu "Gent Local resultats"
  5. Mira l'URL.

El meu URL semblava una cosa així com:

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

El paràmetre sourceid és què funcionava per mi.

(Entenc que sourceid en realitat pot ser una mena de cosa permanent amb SP, però sempre comprovaré igualment 🙂 ).

</final>

undefinedSubscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetListItems i carpetes

Jo estava fent una investigació per algú avui al voltant de la list.asmx web servei proporcionat com part del SharePoint 2010 (i anteriors).  Ella va ser capaç d'obtenir els elements de la llista a la carpeta d'arrel (incloent-hi els noms de sub-carpetes), però no podria aconseguir elements en subcarpetes.  Vaig fer algunes mirant al voltant de la internets i és una pregunta sorprenentment comú.  No obstant això, No podria aconseguir una bona resposta a la pregunta simple, "si jo sé la carpeta, com puc obtenir els elements a la carpeta?”  Per ser honest, No intento dur tot el que ja he volgut aquest un terme figura en el meu propi una estona somriure.

Per configurar-ho, He creat un lloc anomenat "Blogging escenaris" i una llista personalitzada anomenat "Costum llista amb subcarpetes".  Llavors vaig crear carpetes anomenades:

  • L'any 2005
  • L'any 2006
  • L'any 2007

He afegit uns elements a la carpeta de "Any 2006".  Això és el que sembla:

image

El meu amic no és l'escriptura de codi de c# però més aviat utilitzant Java, Així, els sobres de sabó, va ser el que realment necessitava.  Per aconseguir que, Vaig escriure una mica de jQuery i llavors utilitzava el violinista a la conversa d'HTTP present.

Heus aquí la jQuery rellevant (He copiat el codi avall per sota si vol copiar/enganxar):

image

És de primera clau per incloure a banda un <queryOptions> i <QueryOptions> node.  La segona clau és que el <Carpeta> node és un URL al qual el client té accés.

Pot haver-hi altres maneres d'aconseguir això, però això funcionava bé per a mi quan utilitzant jQuery.

Aquí hi ha les sobres de sabó per a l'anterior:

<soapenv:Sobres xmlns:soapenv =’http://Schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Cos>
    <GetListItems xmlns =’
http://Schemas.Microsoft.com/SharePoint/SOAP/’>
      <NOMBRELISTA>Llista personalitzada amb subcarpetes</NOMBRELISTA>
      <viewFields>  
        <ViewFields>
          <FieldRef nom =' títol’ />
          <Nom de FieldRef ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Carpeta>
http://demoserver1/blocs Llista d'escenaris/llistes/personalitzada amb Sub les carpetes a l'any 2006</Carpeta>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Cos>
</soapenv:Sobres>

Un munt d'exemples i discussió al voltant d'això em va portar a crec que tot el que necessito és la <QueryOptions> i especifiqueu un nom de carpeta.  Per a mi, Jo necessitar als dos embolicar dins <queryOptions> així com d'especificar una URL plenament qualificat per a la <Carpeta> Node.

Aquesta és la configuració d'AJAX jQuery:

$(document).preparat(funció() {
       var soapEnv =
           "<soapenv:Sobres xmlns:soapenv =’http://Schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Cos> \
                    <GetListItems xmlns =’http://Schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <NOMBRELISTA>Llista personalitzada amb subcarpetes</NOMBRELISTA> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef nom =' títol’ /> \
                              <Nom de FieldRef ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Carpeta>http://demoserver1/Blogging Llista d'escenaris/llistes/personalitzada amb Sub les carpetes a l'any 2006</Carpeta> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Cos> \
           </soapenv:Sobres>";

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetList i "valor no pot ser nul”

Avui he descobert que la GetList() mètode en lists.asmx servei web ha de ser anomenat amb molta cura, o és propens a llançar un misteriós "Valor no pot ser nul·la" excepció (i que està suposant que pot aconseguir per davant del missatge d'error genèric fins i tot pitjor, "Una excepció del tipus ' Microsoft.SharePoint.SoapServer.SoapServerException’ s'ha llançat.")  Específicament, He trobat que vostè no pot facilitar cap tipus de prefix en el mètode GetList.  El següent fragment de jQuery il·lustra el punt:

image

Si fas això, el servei web respon amb "Valor no pot ser nul" segons aquest Fiddler-proporcionat expedient HTTP:

<?versió XML = "1.0" codificació = "utf-8"?>
  <sabó:Sobres
     xmlns:sabó ="
http://Schemas.xmlsoap.org/SOAP/envelope/"    
     xmlns:XSi = "
http://www.w3.org/2001/XMLSchema
     xmlns:XSD ="
http://www.w3.org/ 2001/XMLSchema">

  <sabó:Cos>
    <sabó:Culpa>
      <faultcode>sabó:Servidor</faultcode>
      <faultstring>
        Excepció del tipus ' Microsoft.SharePoint.SoapServer.SoapServerException’ va ser llançat.
      </faultstring>
      <detall>
        <errorstring xmlns ="
http://Schemas.Microsoft.com/SharePoint/SOAP/">
Valor no poden ser nul·les.
        </errorstring>
      </detall>
    </sabó:Culpa>
  </sabó:Cos>
</sabó:Sobres>

Clar, vostè probablement no afegir aquest prefix "s0" en el seu propi, però algunes eines són propensos a fer-ho (com eclipsi).

Això és el més confús / frustrant perquè altres mètodes tolerar prefixos.  Per exemple, el GetListCollection mètode no li importa si això és estat prefixat, fins i tot amb prefixos tonteries com "xyzzy":

image

Aquest "valor no pot ser nul·la" sembla bastant comú amb lists.asmx així que espero que això ajudarà algú fora en el futur.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin