Měsíční archivy: Únor 2014

Jak zadat lidi jako obor hledání / Zdroj obsahu pomocí služby SharePoint 2013 REST API

Měl jsem důvod pro práci s SharePoint 2013 Rozhraní API pro vyhledávání pomocí REST prvním. Chtěl jsem se hledat pro lidi, není dokumenty. Klíč učení, zde je, že zadáte zdroje obsahu prostřednictvím identifikátoru GUID (nebo alespoň v tomto případě). Následující úryvek ukazuje jQuery jak:

    loadExpertsAsync: funkce() {

        jQuery.support.cors = pravda;

        $.AJAX({
            Adresa URL: to.CreateFullApiUrl() +
                "?querytext = "portály"&SourceId = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Dovednosti,AboutMe,Zájmy,Pracovní funkce,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&RowLimit = 99",
            Metoda: "ZÍSKAT",
            záhlaví: { "Přijmout": "aplikace/json; OData = verbose" },
            mezipaměť: NEPRAVDA,
            úspěch: funkce (výsledek) {

V mém případě, Já běh API proti SharePoint online. Chcete-li získat identifikátor GUID, Tohoto postupu:

  1. Přístup Centrum správy služby SharePoint
  2. Vyberte "Hledat" z levé ruky navigace
  3. Vyberte výsledek zdroje "spravovat"
  4. Zvolte "Místní lidé výsledky"
  5. Podívejte se na URL.

Moje adresa URL vypadal trochu jako:

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

Parametr sourceid je, co pracoval pro mě.

(Chápu, že ID zdroje může být ve skutečnosti jakousi stálou věc s SP, but I’ll always check anyway 🙂 ).

</Konec>

undefinedPřihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Příklad SharePoint ostatní hovory

Zde je sada vzorku REST hovorů, které pracují pro mě a může vám pomoci také. Od 02/2014, there are two examples 🙂

  1. Odkaz na sloupec obsahující mezery v názvu
  2. Referenční sloupec vícenásobného výběru
  3. Vyhledávání lidí přes REST

 

Přidám k tomu, jak plyne čas.

Zde jsou některé užitečné inkousty, našel jsem i:

Odkaz na sloupec obsahující mezery v názvu

Vytvořit vlastní seznam s názvem "Autor blogu" (mezera mezi blogu a autor).

$select odkazovat tento sloupec je:

image

Jednoduše nahradit prostor "_x0020_". _X0020_ v mnoha příkladech vidíme přes Internet a zbytek se neliší.

Pokud to neuděláte, Budeš se chybová zpráva takto:

Výraz “Autor blogu” není platný.

Snadné.

Referenční multi-SELECT vyhledávací sloupec

Nastavit:

  1. Vytvořit vlastní seznam s názvem kategorie.
  2. Přidejte některé kategorie. Přidala jsem thusly kategorie:image
  3. Vytvořit další vlastní seznam s názvem MockBlog a přidejte kategorie jako sloupec vícenásobného výběru (nebo sloupec webu, pokud to je, jak se role).

Přidávat položky do seznamu Mockblog a jste připraveni.

Styl volejte Ajax pomocí jQuery bude vypadat přibližně takto:

serverUrl  = "/_api-web seznamy GetByTitle("MockBlog")/položky" +
             "?$Vyberte = titul,Kategorie/titul,Blog_x0020_Author/titul" + 
             "&$expand = Blog_x0020_Author,Kategorie";

Sdělujeme SharePoint, "Dej mi titul pro všechny kategorie (Kategorie/titul). Skutečné hodnoty pro Titul od $Rozbalitseznam kategorie Ing." (Můj klidný parafráze je asi dost volné, ale to jak jsem výklad, že).

Pokud děláte to přes JavaScript a použití Šumař se podívat na výstup, dostanete něco takového na oplátku:

 

image

(Výše uvedené je JSON objekt)

Vyhledávání lidí přes REST

Jsem blogged o tomto odděleně. Klíčem je určit parametr sourceid, jehož hodnota je identifikátor GUID zdroje obsahu místní lidé. (Zdroje obsahu se kdysi říkalo obory a je oh můj tak těžké označovat vše prostor pro mě!).

Přečtěte si více o tom zde: http://www.mstechblogs.com/paul/?p=10385

 

</Konec>

undefinedPřihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Rychlé a snadné: Vytvořit web služby SharePoint pomocí webové služby REST

Existuje mnoho zdrojů, kolem které ukazují, jak na to, ale nemohl jsem najít komplexní go na odkaz, tak jsme tady.

Můžete vytvořit web služby SharePoint pomocí REST API.  Zde je příklad, plně pečené:

<!--
    SiteRequestForm.html: Shromažďování informací a vytvořit web pro uživatele.
-->

<centrum>
<Tabulka>
    <TR>
        <TD>Název webu:</TD>
        <TD><vstup Typ= "text" Jméno= "SiteName" ID= "SiteName" /></TD>
    </TR>
    <TR>
        <TD ColSpan= "2">
            <vstup Typ= "Odeslat" ID= "CreateSiteButton" hodnota= "Vytvořit web" />
        </TD>
    </TR>
</Tabulka>
</centrum>

<skript src="../Plugins/jQuery-1.11.0.min.js"></skript>

<skript>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametry": {
                __metadata: { "typ": "SP.WebInfoCreationInformation" },
                Adresa URL: "Paultest1",
                Titul: "Paultest1",
                Popis: "odpočinek vytvořil web Paul!",
                Jazyk: 1033,
                Webovou šablonu: "sts",
                UseUniquePermissions: NEPRAVDA
            }
    },

    createSite: funkce () {

        jQuery.support.cors = pravda;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").Val();
        
        $.AJAX({
            Adresa URL: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            Metoda: "POST",

            záhlaví: {
                "přijmout": "aplikace/json; OData = verbose",
                "content-type": "aplikace/json;OData = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            údaje: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            úspěch: funkce () { Výstraha("úspěch"); },
            Chyba: funkce () { Výstraha("Chyba"); }

        });
    },

    wireUpForm: funkce () {
        $("#CreateSiteButton").klepněte na tlačítko(funkce () {
            Výstraha("Chystáte se pokusit se vytvořit web.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</skript>

Když se úspěšný, dostanete paket JSON odpověď takto:

image

Moje klíčové myšlenky a poznatky z tohoto zahrnují:

  • Tento přístup používá jQuery.  V mém případě, Moje knihovna jQuery se nachází v ".../ plugins. "  Budete chtít změnit, aby ukazoval na vaše oblíbené místo JQ.
  • Můžete kopírovat a vložit to celý fragment kódu do webové části Editor obsahu na stránce, a to by mělo fungovat dobře.  Budete chtít změnit koncový bod volání API a ujistěte se, že odkazujete JQ správně.
  • Adresa URL je relativní váš API koncového bodu.  V mém případě, je vytvářet podřízené weby pod https://bigapplesharepoint.com
  • Není nutné poskytovat obsah délka. Některé příspěvky blogu a MSDN dokument naznačuje, že, ale stalo se pro mě automaticky, což Předpokládám je zpracovávaná samotné volání .ajax $.
  • Tato linka je nutné vyhnout se "zakázaná" reakce: "X-RequestDigest": $("#__REQUESTDIGEST").Val().  Existují jiné způsoby, jak to udělat, ale je to docela hezký.  Ztratil jsem odkaz na blog, která poskytuje tento zástupce.  H/T na vás, tajemný blogger!

Hodně štěstí a doufám, že to pomůže někdo.

</Konec>

undefinedPřihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Překonat nepříjemný problém s relativní adresy URL v SharePoint Quick Launch

Chtěl jsem přidat odkaz na panelu Snadné spuštění navigace na druhý den a řekl mi, SharePoint:

image

Čistě textové verze, která je:

Zajistit, že adresa URL je platný a začíná buď platný znak (znak čísla (#) nebo lomítko (/)) nebo platný podporovaný protokol (například, ' http://’, ' https://’, ' soubor://’, ' ftp://’, ' mailto:’, ' Novinky:’).

"Blech a neštovice!"Řekl jsem.

Řešení pro to je najít známé odkaz v panelu Snadné spuštění a její chování přepsat pomocí JavaScript.

Pro tento test, přidáte nový odkaz na web testovací thusly:

image

Použil jsem jQuery. To vyřešit, Získejte nějaký JavaScript a jQuery na stránku vaší oblíbenou technikou a s řádkem kódu, jako je tento:

 

$(dokument).připraven( funkce () {

    $("a:obsahuje('Testovat URL náhradní')").klepněte na tlačítko(funkce () { Výstraha("změněné chování!"); návrat NEPRAVDA;});

});

A strejda je Bob.

JQuery volič najde každý <a> značka, která má "Testovat URL náhradní" v názvu. Možná budete chtít najít melodii, která podle odkazu a tak.

Klikněte(funkce() přepíše, co SharePoint by to udělal, když uživatel klepnul. Ujistěte se, že jste "return false", jinak to bude dělat svoje věci a zkuste href věc příliš, což je téměř jistě není váš cíl.

To bylo provedeno, a test v prostředí služby SharePoint online, ale měl by fungovat i v 2010 a starší příliš.

</Konec>

undefinedPřihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Rychlé a jednoduché: SharePoint REST zavolat pouze výnosy 100 Záznamy

Pracoval jsem na protilehlé internetové stránky pro mého SharePoint praxi v New York a používá mnoho volání JavaScript a odpočinku pro zobrazování obsahu.

Během hlavního vývoje, Jsem jen vytvořit malé dataset s 10 nebo tak řádky do vlastního seznamu a ostatní telefony vytáhl odtud.  Kdysi jsem vrazil seznam má několik set řádků dat, testování na předpokládaný růst, Zjistil jsem, že jsem dostala přesně 100 řádky vrácené zpět na mé volání REST.

Jde velmi jednoduchou věc řešit.  V mém případě (a věřím, že ve většině případů), Výchozí hodnota REST volání do služby SharePoint (a možná i jako průmyslový standard?) návrat 100 řádky.  Chcete-li vrátit více, než je výchozí, pomocí parametru $top na vaše volání, stejně jako v:

ZÍSKAT /Insights Dev/_api/web/lists/GetByTitle("MockBlog")/položky?$Vyberte = ID,Titul,Kategorie/titul,Blog_x0020_Author/titul,DatePublished,BlogSummary&$expand = Blog_x0020_Author,Kategorie&$filtr =&$Top = 9999

Vybral jsem 9999 v tomto případě od té doby vím, že growth-wise, nebude existovat více než 200 nebo tak řádky přidány do tohoto seznamu za rok.  Pokud se stane nemotorný, Můžeme realizovat některé stránkování po silnici.

</Konec>

undefinedPřihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Rychlé a jednoduché: Řešení "parametr neplatný URL” problém s UpdateListItems v lists.asmx

Při práci s UpdateListItems prostřednictvím lists.asmx, je to snadno vygenerovat chybu:

Parametr neplatný URL.

Zadaná adresa URL obsahuje neplatný příkaz nebo hodnoty. Zkontrolujte znovu adresu URL.

Tuto chybu můžete získat, když jste zapomněl zahrnout ID v seznam polí k aktualizaci.  Toto, stejně jako mnoho z těchto SP webových služeb, je poněkud neintuitivní, vzhledem k tomu, že je třeba zahrnout ID atribut ID <Metoda> prvek.  A vy nejste aktualizovány ID a pravděpodobně nikdy chtějí v prvé řadě.

Tento obálky SOAP funguje:

<soapenv:Obálka xmlns:soapenv =' http://schemas.xmlsoap.org/SOAP/ENVELOPE/'>
  <soapenv:Tělo>                      
    <UpdateListItems xmlns =' http://schemas.Microsoft.com/SharePoint/SOAP/'>                     
      <Jméno_konference>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</Jméno_konference>                     
        <aktualizace>                     
         <Dávkové PřiChybě ="Pokračovat">
          <Metodu ID ="1" CMD ="Aktualizace">
            <Název pole ="CooperativeLock">uzamčeno!</Pole>
            <Název pole ="ID">1</Pole>
          </Metoda>
        </Dávka>                     
        </aktualizace>                
      </UpdateListItems>             
  </soapenv:Tělo>         
</soapenv:Obálka>

Pokud vyřadíte z referenční pole ID pak budete mít obtěžující zpráva "Neplatná adresa URL parametr".

</Konec>

undefinedPřihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin