Category Archives: SharePoint Web Services

Hogyan lehet megadni az emberek keresési hatókörként / Tartalomforrások SharePoint 2013 REST API

Volt az oka, hogy működjön együtt a SharePoint 2013 Via többi először Search API. Azt akartam, hogy keressen az emberek, nem dokumentumokat. A kulcs itt az, hogy a tanulás megadhatja a tartalomforrások keresztül a globálisan egyedi Azonosítóra (vagy legalábbis ebben az esetben). A következő jQuery részlet megmutatja, hogy hogyan:

    loadExpertsAsync: függvény() {

        jQuery.support.cors = igaz;

        $.Ajax({
            URL: Ez.CreateFullApiUrl() +
                "?QueryText = "portálok"&SourceId = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Készségek,AboutMe,Érdekeit,Munkakör,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&a ROWLIMIT = 99",
            a módszer: "KAP",
            fejlécek: { "Fogadja el": "Application/json; OData = verbose" },
            gyorsítótár: hamis,
            siker: függvény (eredmény) {

Az én esetemben, Én futás a API ellen SharePoint online. Ahhoz, hogy a globálisan egyedi azonosító, Követtem a lépéseket:

  1. Hozzáférés a SharePoint admin center
  2. Válassza a "keresés", a bal oldali navigációs
  3. Válassza a "Manage eredmény források"
  4. Válassza ki a "Helyiek eredmények"
  5. Nézd meg az URL.

Az én-m URL nézett valamit, mint:

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

A sourceid paraméter mi munkás értem.

(Megértem, hogy a sourceid valójában lehet egyfajta állandó dolog-val SP, de azért mindig megnézem 🙂 ).

</vége>

undefinedSubscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetListItems és a mappák

Csinálok néhány kutatás valaki ma körül a list.asmx webszolgáltatást, SharePoint részeként 2010 (és a korábbi).  Ő volt képes-hoz kap a lista elemeit a gyökérmappában (beleértve a tengeralattjáró-tartók nevei), de nem tudott kap az elemek tengeralattjáró-tartók-ban.  Csináltam néhány látszó körül a a internets, és meglepően közös kérdés.  Még, Tudtam, hogy egy jó az egyszerű kérdésre választ, "ha tudom, hogy a mappa, Hogyan jutok a cikkeket a mappában?”  Hogy őszinte legyek, Nem próbálom minden, amit kemény óta már akartam ábra, ez egy ki a saját egy darabig Mosoly.

Ennek beállításához, Létrehoztam egy webhely "Forgatókönyvek Blogging" nevű és „egyéni lista a Sub mappák"nevű egyéni lista.  Majd hozott létre nevű mappák:

  • Év 2005
  • Év 2006
  • Év 2007

Én hozzáadott néhány elem "2006-os évre" mappába.  Ez az, amit úgy néz ki, mint:

image

A barátom nem C# kód írása, de inkább a Java használata, így a SOAP-boríték volt mire ő igazán szükség.  -Hoz kap amit, Írtam egy kicsit a jQuery, és fiddler segítségével kap a tényleges HTTP-beszélgetés.

Itt van a megfelelő jQuery (Másoltam a kód le alul ha ön akar-hoz másol/tészta):

image

Azok első kulcsa tartalmazza mind a <queryOptions> és <QueryOptions> csomópont.  A második kulcsot, hogy a <Mappa> csomópont egy URL-címet, amelyhez az ügyfél hozzáfér.

Előfordulhat, hogy más ways-hoz kap ez, de ez munkás jól értem, amikor segítségével jQuery.

Itt van részére a fenti SOAP-boríték:

<soapenv:Boríték xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Szerv>
    <GetListItems xmlns =’
http://schemas.microsoft.com/SharePoint/SOAP/’>
      <listName>Egyéni lista Sub-mappákkal</listName>
      <viewFields>  
        <ViewFields>
          <A FieldRef neve = "cím’ />
          <A FieldRef neve ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Mappa>
http://demoserver1 és a blogírás Sub mappák/év 2006 forgatókönyvek/listák/egyéni lista</Mappa>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Szerv>
</soapenv:Boríték>

Sok példák és körül ez a vita vezetett, azt hinni, hogy minden szükségem volt <QueryOptions> gombra, és adja meg a mappa nevét.  Nekem, Azt kell mindkét betakar ez belsejében <queryOptions> valamint egy teljesen minősített URL-adja meg a <Mappa> csomópont.

Itt van a jQuery AJAX-telepítő:

$(dokumentum).kész(függvény() {
       var soapEnv =
           "<soapenv:Boríték xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Szerv> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/SharePoint/SOAP/’> \
                       <listName>Egyéni lista Sub-mappákkal</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <A FieldRef neve = "cím’ /> \
                              <A FieldRef neve ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Mappa>http://demoserver1/Blogging Sub mappák/év 2006 forgatókönyvek/listák/egyéni lista</Mappa> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Szerv> \
           </soapenv:Boríték>";

</vége>

Subscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin

Lists.asmx, GetList és a "érték nem lehet null”

Ma rájöttem, hogy a GetList() a módszer lists.asmx webszolgáltatás nagyon óvatosan elnevezése vagy elterült-hoz dob egy rejtélyes "Értéke nem lehet null" kivétel (és hogy feltételezve, tudod kap múlt a még rosszabb általános hibaüzenet, "Kivétel típusú ' Microsoft.SharePoint.SoapServer.SoapServerException’ was thrown.")  Kifejezetten, Úgy találtam, hogy bármilyen típusú előtag GetList módszer nem biztosítható.  A következő jQuery objektumdarab illusztrálja a lényeg:

image

Ha csinálsz, hogy, "Értéke nem lehet null", per ez válaszol a webes szolgáltatás Fiddler-Amennyiben a HTTP transcript:

<?XML-verzió = "1.0" kódolás = "utf-8"?>
  <szappan:Boríték
     xmlns:SOAP ="
http://schemas.xmlsoap.org/SOAP/Envelope/"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <szappan:Szerv>
    <szappan:Hibatűrés>
      <faultcode>szappan:Kiszolgáló</faultcode>
      <faultstring>
        Kivétel típusú ' Microsoft.SharePoint.SoapServer.SoapServerException’ keletkezett..
      </faultstring>
      <Részletek>
        <ErrorString xmlns ="
http://schemas.microsoft.com/SharePoint/SOAP/">
Értéke nem lehet null..
        </ErrorString>
      </Részletek>
    </szappan:Hibatűrés>
  </szappan:Szerv>
</szappan:Boríték>

természetesen, valószínűleg nem adhat a "s0" előtag a saját, egyes eszközök elterült-hoz csinál ez, de (Holdas mint).

Ez még inkább zavaró a / frusztráló, mert más módszerek elviselni előtagok.  Például, a GetListCollection a módszer nem zavarja, ha azt nem lett előzi meg, még az olyan nonszensz előtaggal, mint "xyzzy":

image

Ez "értéke nem lehet null" úgy tűnik meglehetősen közös lists.asmx, így remélhetőleg ez segít valaki ki a jövőben a.

</vége>

Subscribe to my blog.

Kövesse nekem Twitter http://www.twitter.com/pagalvin