arhive lunare: Februarie 2014

Cum pentru a specifica oamenilor ca un domeniu de căutare / Sursă de conţinut utilizând SharePoint 2013 RESTUL API

Am avut un motiv pentru a lucra cu SharePoint 2013 API de căutare prin intermediul restul pentru prima dată. Am vrut pentru a căuta oameni, nu documente. Cheia aici este că de învăţare specificate sursele de conținut prin intermediul GUID sale (sau cel puţin în acest caz). JQuery următorul fragment Arată cum:

    loadExpertsAsync: funcţia() {

        jQuery.support.cors = adevărat;

        $.Ajax({
            URL-ul: Acest lucru.CreateFullApiUrl() +
                "?querytext = "portaluri"&IDSursă = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Abilităţi,AboutMe,Interesele,Funcţie,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&RowLimit = 99",
            metoda: "OBŢINE",
            anteturi: { "Accepta": "cerere/json; Odata = verbose" },
            cache-ul: fals,
            succesul: funcţia (rezultatul) {

În cazul meu, I sînt running API împotriva SharePoint online. Pentru a obţine GUID-ul, Am urmat pasii:

  1. Accesaţi centrul de administrare SharePoint
  2. Selectează "căutare" din stânga mâna de navigare
  3. Selectaţi "gestionare rezultatul surse"
  4. Selectaţi "Localnicii rezultate"
  5. Uita-te la URL-ul.

URL-ul meu arata ceva de genul:

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

Parametrul IDSursă este ceea ce a lucrat pentru mine.

(Am înţeles că IDSursă poate fi de fapt un fel de lucru permanente cu SP, but I’ll always check anyway 🙂 ).

</scop>

undefinedAboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Exemplu SharePoint restul apeluri

Aici este un set de probă restul apeluri care funcţionează pentru mine şi vă poate ajuta, de asemenea. Ca de 02/2014, there are two examples 🙂

  1. O coloană cu spaţii în numele de referinţă
  2. Referinţă o coloană de selecție multiplă
  3. Efectuaţi o căutare de oameni prin intermediul restul

 

Voi adăuga la acest lucru ca timpul trece.

Aici sunt unele cerneluri utile am găsit, de asemenea:

O coloană cu spaţii în numele de referinţă

Pot crea o listă personalizată cu o coloană numită "Blog-ul autorului" (spaţiu între Blog şi autorul).

$select această coloană de referinţă este:

image

Pur şi simplu înlocuiţi spaţiul cu "_x0020_". Vom vedea _x0020_ în multe exemple în întreaga Internet şi restul nu este diferit.

Dacă nu faci asta, sunteţi răspunzător pentru a obţine un mesaj de eroare de genul asta:

Expresia “Blog-ul autorului” nu este valid.

Destul de uşor.

Referinţă o coloană de căutare selecție multiplă

Înfiinţat:

  1. Crea o listă personalizată numit categorii.
  2. Adauga unele categorii. Am adăugat categorii astfel:image
  3. Creaţi o altă listă particularizată numit MockBlog şi adăugaţi categorii ca o coloană multi-lista selecta (sau coloană de site în cazul în care este modul în care aţi rola).

Adăuga unele elemente la lista de Mockblog şi sunteţi gata.

Un apel de stil Ajax, utilizarea jQuery va arata ceva de genul:

serverUrl  = "/_api/web/liste/GetByTitle('MockBlog')/elemente" +
             "?$Selectaţi = titlu,Categorii/titlu,Blog_x0020_Author/titlu" + 
             "&$Expand = Blog_x0020_Author,Categorii";

Noi suntem spune SharePoint "da-mi titlul pentru toate categoriile (Categorii/titlu). Valorile reale pentru a lua Titlul de $extindeING lista categoriilor." (Meu parafrazând odihnitor este, probabil, destul de lejer, dar cum eu sunt interpretarea acestora).

Dacă aţi face acest lucru prin intermediul JavaScript şi utilizarea Lăutar să se uite la ieşire, veţi obţine ceva de genul asta în schimb:

 

image

(De mai sus este un obiect JSON)

Efectuaţi o căutare de oameni prin intermediul restul

I blogged despre acest separat. Cheia este de a specifica un parametru de IDSursă a căror valoare este GUID-ul de sursa de conținut Local de persoane. (Sursele de conținut folosit pentru a fi numit domenii şi my-oh-mea nu atât de greu pentru a apela tot ceea ce un domeniu de aplicare pentru mine!).

Citeşte mai multe despre el aici: http://www.mstechblogs.com/paul/?p=10385

 

</scop>

undefinedAboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Rapid şi uşor: Creaţi un sit SharePoint, utilizând restul

Există o mulţime de resurse în jurul care arată cum să facă acest lucru, dar nu am putut găsi o cuprinzătoare-a merge link-ul, Deci, aici suntem.

Puteţi crea un sit SharePoint, utilizând API restul.  Aici este un exemplu complet coapte:

<!--
    SiteRequestForm.html: Colecta informaţii şi de a crea un site pentru utilizator.
-->

<Centrul>
<tabel>
    <TR>
        <TD>Numele site-ului:</TD>
        <TD><intrare tip= "text" nume= "SiteName" ID-ul= "SiteName" /></TD>
    </TR>
    <TR>
        <TD ColSpan= "2">
            <intrare tip= "submit" ID-ul= "CreateSiteButton" valoarea= "Creaţi site-ul" />
        </TD>
    </TR>
</tabel>
</Centrul>

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

<script-ul>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametrii": {
                __metadata: { "tip de": "SP.WebInfoCreationInformation" },
                URL-ul: "Paultest1",
                Titlul: "Paultest1",
                Descriere: "creat de restul web de Paul!",
                Limba: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: fals
            }
    },

    createSite: funcţia () {

        jQuery.support.cors = adevărat;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").vasilica();
        
        $.Ajax({
            URL-ul: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            metoda: "POST",

            anteturi: {
                "Accept": "cerere/json; Odata = verbose",
                "content-type": "cerere/json;Odata = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").vasilica()
            },

            date: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            succesul: funcţia () { alertă("succesul"); },
            eroare: funcţia () { alertă("eroare"); }

        });
    },

    wireUpForm: funcţia () {
        $("#CreateSiteButton").faceţi clic pe(funcţia () {
            alertă("Cale de a încerca şi de a crea site-ul.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</script-ul>

Când de succes, tu a lua un pachet de JSON în răspuns ca aceasta:

image

Cheie gândurile mele şi cunoştinţele din acest includ:

  • Această abordare foloseste jQuery.  În cazul meu, mea bibliotecă jQuery este situat în ".../ plugin-uri. "  Veţi dori să schimbe că la punctul de la locaţia dumneavoastră preferat de JQ.
  • Puteţi copia şi lipi acest fragment întreg într-o parte de Editor de conţinut Web pe o pagină, şi ar trebui să funcţioneze bine.  Veţi dori să schimba punctul final al API apel şi asiguraţi-vă de referinţă JQ corect.
  • URL-ul este relativ API dumneavoastră final.  În cazul meu, este crearea sub-site-uri sub https://bigapplesharepoint.com
  • Nu aveţi nevoie pentru a oferi un conţinut de lungime. Unele posturi blog-ul şi MSDN documentul implică faptul că faci, dar sa întâmplat pentru mine automat, care presupun este gestionate de $.ajax apel în sine.
  • Această linie este necesară pentru a evita un răspuns "interzis": "X-RequestDigest": $("#__REQUESTDIGEST").vasilica().  Există alte moduri de a face acest lucru, dar acest lucru este destul de frumos.  Am pierdut link-ul la blog-ul care a furnizat această comandă rapidă.  H/T la tine, misterios blogger!

Mult noroc şi sper că acest lucru ajută pe cineva.

</scop>

undefinedAboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Depăşi enervant problemă cu URL-uri Relative în Lansarea rapidă SharePoint

Am vrut să adăugaţi un link la lansare rapidă de navigare altă zi şi mi-a spus SharePoint:

image

Versiune text curat de care este:

Asigura că URL-ul este valabil şi începe fie cu un caracter valid (un semn de număr (#) sau bară oblică (/)) sau un protocol valabile acceptate (de exemplu, "http://’, "https://’, "fişier://’, "ftp://’, "mailto:’, ' Ştiri:’).

"Blech şi variola!"Am spus.

Un workaround la acest lucru este de a folosi JavaScript pentru a găsi un link cunoscută în Lansarea rapidă şi de a trece peste comportamentul acestuia.

Pentru a testa acest lucru, Adauga un nou link la site-ul de testare thusly:

image

Am folosit jQuery. La spre solve it, obţine unele JavaScript şi jQuery pe pagina folosind tehnica ta preferată şi cu o linie de cod ca asta:

 

$(document).gata( funcţia () {

    $("o:conţine("Test URL-ul de înlocuire")").faceţi clic pe(funcţia () { alertă("faceţi clic pe schimbat comportamentul!"); reveni fals;});

});

Şi Bob pe unchiul tău.

JQuery selectorul găseşte fiecare <o> Tag-ul care a "Test URL-ul de înlocuire" în numele său. Poate doriţi să găsiţi-ton, care în funcţie de legătura şi astfel.

.click(funcţia() suprascrie orice SharePoint ar fi făcut atunci când utilizatorul face clic pe. Asiguraţi-vă că vă "întoarce false" sau altceva va face lucrurile tale şi apoi încercaţi să href lucru prea, care nu este aproape cu siguranţă scopul tau.

Acest lucru a fost făcut şi testare într-un mediu online SharePoint dar ar trebui să lucreze bine în 2010 şi mai devreme prea.

</scop>

undefinedAboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Simplă şi rapidă: SharePoint restul apela numai revine 100 Înregistrări

Am fost de lucru pe un site public cu care se confruntă pentru practica mea de SharePoint aici în New York şi se foloseşte o mulţime de JavaScript şi restul apeluri pentru a afişa conţinut.

În timpul dezvoltării magistrala, Creează un set de date mici, cu doar 10 sau aşa rânduri dintr-o listă particularizată şi apelurile mele restul toate trase de acolo.  O dată am întâlnit lista pentru a avea câteva sute de rânduri de date pentru a testa pentru creşterea anticipată, Am constatat că am fost obtinerea exact 100 rânduri s-a întors înapoi pe apelurile mele de restul.

Acesta este un lucru foarte simplu la adresa.  În cazul meu (şi cred că în majoritatea cazurilor), implicit restul numeşte SharePoint (şi, eventual, ca un standard în industrie?) reveni 100 rânduri.  Pentru a reveni mai mult implicit, utilizaţi parametrul $top apel, ca şi în:

IA /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/elemente?$Selectaţi = ID,Titlul,Categorii/titlu,Blog_x0020_Author/titlu,DatePublished,BlogSummary&$Expand = Blog_x0020_Author,Categorii&$filtru =&$sus = 9999

Am luat 9999 în acest caz, deoarece ştiu că growth-wise, acolo nu va fi mai mult 200 sau astfel încât rândurile adăugate la această listă într-un an.  În cazul în care acesta devine dizgraţios, putem implementa unele paginare în jos pe drum.

</scop>

undefinedAboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

Simplă şi rapidă: Rezolva "parametru Invalid URL” problema cu UpdateListItems în lists.asmx

Atunci când se lucrează cu UpdateListItems prin intermediul lists.asmx, este uşor pentru a genera eroare:

Parametru invalid URL.

URL-ul furnizat conține o comandă invalidă sau valoare. Vă rugăm să verificaţi URL-ul din nou.

Puteţi obţine această eroare atunci când aţi uitat să includă ID din lista de câmpuri pentru a actualiza.  Acest lucru, ca o mulţime de aceste SP servicii web, este un pic contraintuitiv, deoarece trebuie să includă ID-ul în atributul ID <Metoda> element.  Si nu esti actualizat ID şi, probabil, vrea să niciodată în primul rând.

Acest plic de săpun funcţionează:

<soapenv:Plic xmlns:soapenv ="http://schemas.xmlsoap.org/SOAP/Envelope/'>
  <soapenv:Organism>                      
    <UpdateListItems xmlns ="http://schemas.Microsoft.com/SharePoint/SOAP/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <actualizări>                     
         <Lot LaEroare ="Continua">
          <Metoda ID ="1" Cmd ="Update">
            <Numele de câmp ="CooperativeLock">blocat!</Câmp>
            <Numele de câmp ="ID">1</Câmp>
          </Metoda>
        </Lot>                     
        </actualizări>                
      </UpdateListItems>             
  </soapenv:Organism>         
</soapenv:Plic>

Dacă benzi afară ID câmp referinţă apoi veţi primi mesajul "Parametru Invalid URL" enervant.

</scop>

undefinedAboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin