Monatliche Archive: Februar 2014

Menschen als einen Suchbereich angeben / Inhaltsquelle mit SharePoint 2013 REST-API

Ich hatte Grund mit SharePoint arbeiten 2013 Such-API über REST zum ersten Mal. Ich wollte nach Personen suchen, keine Dokumente. Die Taste lernen ist hier, dass geben Sie Content-Quellen über seine GUID (oder zumindest in diesem Fall). Die folgende jQuery Ausschnitt zeigt wie:

    loadExpertsAsync: Funktion() {

        jQuery.support.cors = wahr;

        $.AJAX({
            URL: Dies.CreateFullApiUrl() +
                "?Querytext = 'Portale'&SourceID = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&Selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Fähigkeiten,AboutMe,Interessen,JobTitle,PastProjects,Bild-URL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&ROWLIMIT = 99",
            Methode: "Erhalten",
            Header: { "Akzeptieren": "Application/json; promoveaza = verbose" },
            Cache: falsch,
            Erfolg: Funktion (Ergebnis) {

In meinem Fall, Ich bin die API für SharePoint online ausgeführt. Um die GUID zu erhalten, Ich Schritte diese:

  1. Zugang zum SharePoint Administrationscenter
  2. Klicken Sie auf "Suche" aus der linken Navigationsleiste
  3. Wählen Sie "Ergebnis Quellen verwalten"
  4. Wählen Sie "Einheimischen Ergebnisse"
  5. Sehen Sie sich die URL.

Meine URL sah so etwas wie:

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

Parameters Sourceid ist was für mich gearbeitet.

(Ich verstehe, dass die Sourceid tatsächlich eine Art permanente mit SP sein kann, aber ich werde sowieso immer überprüfen 🙂 ).

</Ende>

undefinedOnnieren Sie meinen Blog ab.

Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin

Beispiel SharePoint REST Aufrufe

Hier ist eine Reihe von Beispiel-REST-Aufrufe, die Arbeit für mich und kann Ihnen helfen, sich auch. Als der 02/2014, gibt es zwei Beispiele 🙂

  1. Eine Spalte mit Leerzeichen im Namen verweisen
  2. Eine Mehrfachauswahl Spalte verweisen
  3. Führen Sie eine Personensuche über REST

 

Ich füge dazu wie die Zeit vergeht.

Hier sind einige nützlichen Tinten habe, die ich auch gefunden:

Eine Spalte mit Leerzeichen im Namen verweisen

Erstellen Sie eine benutzerdefinierte Liste, mit einer Spalte mit dem Namen "Blog-Autor" (Abstand zwischen Blog und Autor).

$select auf diese Spalte verwiesen wird:

image

Ersetzen Sie einfach den Raum mit "_x0020_". Wir sehen die _x0020_ in vielen Beispielen über den Internets und REST ist nicht anders.

Wenn Sie das nicht tun, Sie sind verpflichtet, eine Fehlermeldung wie diese:

Der Ausdruck “Blog-Autor” ist nicht gültig.

Einfach genug.

Referenz einer Mehrfachauswahl Nachschlagespalte

Einrichten:

  1. Erstellen einer benutzerdefinierten Liste mit dem Namen Categories.
  2. Einige Kategorien hinzufügen. Ich fügte Kategorien Wasserverbrauch:image
  3. Erstellen Sie eine andere benutzerdefinierte Liste mit der Bezeichnung MockBlog und fügen Kategorien als multi-select-Listenspalte hinzu (oder Websitespalte wenn es das ist, wie Sie Rollen).

Einige Elemente in Ihre Mockblog-Liste einfügen und fertig.

Ein Ajax-Stil-Aufruf mit jQuery wird wie folgt aussehen:

ServerUrl  = "/_api/Web/Listen/GetByTitle('MockBlog')/Elemente" +
             "?$Wählen Sie = Title,Kategorien/Titel,Blog_x0020_Author/Titel" + 
             "&$Erweitern Sie = Blog_x0020_Author,Kategorien";

Wir sagen SharePoint "geben Sie mir den Titel für alle Kategorien (Kategorien/Titel). Erhalten Sie die tatsächlichen Werten für Titel von $Erweitern SieIng der Liste Kategorien." (Meine erholsamen paraphrasieren ist wohl ziemlich locker, Aber wie ich es interpretieren bin).

Wenn du das tust, mit JavaScript und mit Fiddler um zu betrachten, die Ausgabe, Sie bekommen so etwas im Gegenzug:

 

image

(Das oben genannte ist ein JSON-Objekt)

Führen Sie eine Personensuche über REST

Ich gebloggt dazu separat. Der Schlüssel ist einen Sourceid-Parameter festgelegt, deren Wert die GUID der einheimischen Inhaltsquelle ist. (Content-Quellen verwendet, um die Bereiche bezeichnet werden und es ist so schwer, oh-mein nicht alles aufrufen, einen Bereich für mich!).

Mehr dazu lesen sie hier: http://www.mstechblogs.com/paul/?p=10385

 

</Ende>

undefinedOnnieren Sie meinen Blog ab.

Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin

Schnell und einfach: Erstellen einer SharePoint-Website, die Verwendung von REST

Gibt es eine Menge Ressourcen um, die zeigen, wie Sie dies tun, aber ich konnte einen umfassenden gehe-zu-Link finden, Hier sind wir.

Sie können eine SharePoint-Website mithilfe der REST-API erstellen.  Hier ist ein vollständig gebackene Beispiel:

<!--
    SiteRequestForm.html: Informationen sammeln und Erstellen einer Website für den Benutzer.
-->

<Zentrum>
<Tabelle>
    <TR>
        <TD>Site-Name:</TD>
        <TD><Eingang Typ= "text" Name= "SiteName" ID= "SiteName" /></TD>
    </TR>
    <TR>
        <TD colspan= "2">
            <Eingang Typ= "submit" ID= "CreateSiteButton" Wert= "Erstellen die Website" />
        </TD>
    </TR>
</Tabelle>
</Zentrum>

<Skript src="../Plugins/jQuery-1.11.0.Min.js"></Skript>

<Skript>
var CreateSiteLogicContainer = {

    createSiteData: {
            "Parameter": {
                __metadata: { "Typ": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Titel: "Paultest1",
                Beschreibung: "Rest-erstellt Web von Paul!",
                Sprache: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: falsch
            }
    },

    createSite: Funktion () {

        jQuery.support.cors = wahr;

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

            Header: {
                "akzeptieren": "Application/json; promoveaza = verbose",
                "Content-type": "Application/json;promoveaza = verbose",
                "X-RequestDigest": $(#__REQUESTDIGEST"").Val()
            },

            Daten: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            Erfolg: Funktion () { Warnung("Erfolg"); },
            Fehler: Funktion () { Warnung("Fehler"); }

        });
    },

    wireUpForm: Funktion () {
        $("#CreateSiteButton").Klicken Sie auf(Funktion () {
            Warnung("Zu versuchen und Erstellen der Site.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</Skript>

Wenn Sie erfolgreich sind, Sie erhalten ein JSON-Paket als Antwort wie folgt:

image

Meine wichtigsten Gedanken und Erkenntnisse aus diesem include:

  • Dieser Ansatz verwendet jQuery.  In meinem Fall, meine jQuery-Bibliothek befindet sich im ".../ Plugins. "  Sie wollen das darauf zu Ihrem Lieblings-JQ-Standort ändern.
  • Sie können kopieren und fügen Sie ganze Ausschnitt in einem Inhalts-Editor-Webpart auf einer Seite und es sollte gut funktionieren.  Sie wollen den Endpunkt der API-Aufruf zu ändern und sicherstellen, dass Sie korrekt JQ verweisen.
  • Die URL ist relativ Ihre API-Endpunkt.  In meinem Fall, Es ist Sub-Sites unter erstellen. https://bigapplesharepoint.com
  • Du musst eine Inhaltslänge bieten. Einige Blog-Posts und MSDN Dokument impliziert, dass Sie tun, aber geschah für mich automatisch, welche ich annehme werden durch den Aufruf der $-Schnipsel selbst behandelt.
  • Diese Linie wird benötigt, um eine "Verbotene" Antwort zu vermeiden: "X-RequestDigest": $(#__REQUESTDIGEST"").Val().  Es gibt andere Wege, es zu tun, aber das ist ziemlich nett.  Ich habe den Link zum Blog verloren, die diese Verknüpfung bereitgestellt.  H/T auf Sie, geheimnisvolle blogger!

Viel Glück und hoffe, dass dies jemand hilft.

</Ende>

undefinedOnnieren Sie meinen Blog ab.

Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin

Überwinden Sie lästiges Problem mit relativen Urls in SharePoint Quick Launch

Ich wollte die Schnellstart-Navigation neulich einen Link hinzu und SharePoint erzählte mir:

image

Reine Textversion, die ist:

Sicherzustellen Sie, dass die URL gültig ist und mit entweder ein gültiges Zeichen beginnt (ein Nummernzeichen (#) oder Schrägstrich (/)) oder eine gültige unterstützte Protokoll (zum Beispiel, "http://’, "Https://’, ' Datei://’, "ftp://’, "Mailto:’, ' Nachrichten:’).

"Blech und pox!"Ich sagte.

Ein Workaround zu diesem soll JavaScript verwenden, um eine bekannte Verknüpfung in der Schnellstartleiste finden, und überschreiben Sie sein Verhalten.

Um dies zu testen, Wasserverbrauch Ihrer Test-Website einen neuen Link hinzufügen:

image

Ich habe jQuery. Um es zu lösen, einige JavaScript und jQuery Shape auf das Zeichenblatt verwenden Ihre bevorzugte Technik und mit einer Codezeile wie folgt:

 

$(Dokument).bereit( Funktion () {

    $("eine:enthält('Test URL Ersatz')").Klicken Sie auf(Funktion () { Warnung("geänderte Click-Verhalten!"); Rückkehr falsch;});

});

Und Bob ist dein Onkel.

Die jQuery-Auswahl findet jeder <eine> Tag, das "Test-URL Ersatz" in seinem Namen hat. Möchten Sie möglicherweise suchen-, die abhängig von Ihrer Verbindung und diese Melodie.

Die Click…(Funktion() überschreibt, was SharePoint getan hätte, wenn der Benutzer geklickt hat. Stellen Sie sicher, dass Sie "false zurück," Es wird deine Sachen zu tun und dann versuchen, die Href-Sache zu, Das ist sicherlich nicht Ihr Ziel.

Dies geschah und Test in einer SharePoint-online-Umgebung sollten aber funktionieren gut in 2010 und früher zu.

</Ende>

undefinedOnnieren Sie meinen Blog ab.

Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin

Schnell und einfach: SharePoint REST rufen nur gibt 100 Datensätze

Ich habe an einer öffentlichen ausgerichteten Website für meine SharePoint-Praxis hier in gearbeitet New York und verwendet eine Menge JavaScript und REST Anrufe auf Inhalt anzeigen.

Während der Hauptstrecke Entwicklung, Ich erstelle eine kleine Dataset mit nur 10 oder Zeilen in einer benutzerdefinierten Liste und meine REST-Anrufe alle so gezogen, von dort.  Einmal traf ich auf der Liste, um ein paar hundert Zeilen von Daten zum Testen für das erwartete Wachstum haben, Ich fand, dass ich genau bekam 100 wieder auf meine Anrufe REST zurückgegebenen Zeilen.

Dies ist eine sehr einfache Sache zu Adresse.  In meinem Fall (und ich glaube, in den meisten Fällen), Standardmäßig ruft REST in SharePoint (und möglicherweise als Branchenstandard?) Rückkehr 100 Zeilen.  Mehr als der Standardwert zurückgegeben, mithilfe des Parameters $top auf Ihren Anruf, wie in:

/Insights Dev/_api/web/lists/GetByTitle zu erhalten('MockBlog')/Elemente?$Wählen Sie = ID,Titel,Kategorien/Titel,Blog_x0020_Author/Titel,DatePublished,BlogSummary&$Erweitern Sie = Blog_x0020_Author,Kategorien&$Filter =&$oben = 9999

Ich nahm 9999 in diesem Fall da ich weiß, die growth-wise, Es werden nicht mehr als 200 oder also Zeilen in einem Jahr in diese Liste aufgenommen.  Wenn es plump wird, Wir realisieren eine Auslagerungsdatei auf der Straße.

</Ende>

undefinedOnnieren Sie meinen Blog ab.

Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin

Schnell und einfach: Lösen Sie "Ungültiger URL-Parameter” Problem mit UpdateListItems in lists.asmx

Beim Arbeiten mit UpdateListItems über lists.asmx, Es ist einfach, den Fehler zu generieren:

Ungültiger URL-Parameter.

Die bereitgestellte URL enthält einen ungültigen Befehl oder Wert. Bitte überprüfen Sie die URL erneut.

Sie können diesen Fehler erhalten, wenn Sie vergessen, ID in enthalten die die Liste der Felder aktualisieren.  Dies, wie viele dieser SP Webdienste, ist ein wenig counterintuitive, da Sie die ID in das ID-Attribut des einschließen müssen die <Methode> Element.  Und du bist nicht aktualisiert ID und wahrscheinlich nie in erster Linie möchten.

Diese SOAP-Envelope arbeitet:

<soapenv:Umschlag xmlns:Soapenv =' http://Schemas.xmlsoap.org/SOAP/Envelope/'>
  <soapenv:Körper>                      
    <UpdateListItems Xmlns =' http://Schemas.Microsoft.com/SharePoint/SOAP/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <Aktuelles>                     
         <Batch-OnError ="Weiter">
          <Methoden-ID ="1" Cmd ="Update">
            <Feldname ="CooperativeLock">gesperrt!</Feld>
            <Feldname ="ID">1</Feld>
          </Methode>
        </Batch>                     
        </Aktuelles>                
      </UpdateListItems>             
  </soapenv:Körper>         
</soapenv:Umschlag>

Wenn Sie den ID-Feldverweis entfernen dann erhalten die lästige Meldung "Ungültiger URL-Parameter" Sie.

</Ende>

undefinedOnnieren Sie meinen Blog ab.

Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin