Arxius per mes: Febrer 2014

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

Exemple del SharePoint resta trucades

Aquí és un conjunt de convocatòries de resta Mostra que funciona per mi i pot ajudar-lo, així. Com de 02/2014, hi ha dos exemples 🙂

  1. Referència a una columna amb espais en el seu nom
  2. Referència a una columna selecció múltiple
  3. Realitzar una recerca de persones mitjançant la resta

 

Vaig a afegir a aquesta mesura que passa el temps.

Aquí hi ha algunes tintes útils que he trobat, així:

Referència a una columna amb espais en el seu nom

Puc crear una llista personalitzada amb una columna anomenada "Autor del Blog" (espai entre bloc i autor).

És el $select per fer referència a la columna:

image

Simplement reemplaci l'espai amb "_x0020_". Veiem el _x0020_ en molts exemples a través de l'internets i resta és diferent.

Si no fa que, vostè està obligat a aconseguir un missatge d'error com aquest:

L'expressió “Autor del blog” no és vàlid.

Prou fàcil.

Referència a una columna de cerca selecció múltiple

Configurar:

  1. Crear una llista personalitzada anomenat Categories.
  2. Afegir algunes categories. He afegit categories així:image
  3. Crear un altre costum llista anomenada MockBlog i afegir Categories com una columna de llista de selecció múltiple (o columna del lloc si allò és com vostè rotllo).

Afegir alguns elements a la llista de Mockblog i ja està llest.

Una crida d'estil Ajax mitjançant jQuery mirarà alguna cosa com això:

  = URLServidor "/_api/web/llistes/GetByTitle('MockBlog')/elements" +
             "?$Seleccioneu = títol,Categories/títol,Blog_x0020_Author/títol" + 
             "&$ampliar = Blog_x0020_Author,Categories";

Li estem dient SharePoint "dóna'm el títol de totes les Categories (Categories/títol). Obtenir els valors reals per a Títol per $ampliarció la llista de Categories." (El meu descans parafrasejant és probablement bastant fluixa, però això com estic interpretant-).

Si vostè està fent això mitjançant JavaScript i utilitzant el violinista per mirar la sortida, vostè aconseguir alguna cosa com això a canvi:

 

image

(L'anterior és un objecte JSON)

Realitzar una recerca de persones mitjançant la resta

He blogged sobre això per separat. La clau és especificar un paràmetre sourceid el valor és el GUID de l'origen de contingut gent Local. (Els orígens de contingut solia anomenar àmbits i és meva-Ah-meu tan difícil no cridar tot un àmbit per a mi!).

Llegiu més sobre això aquí: http://www.mstechblogs.com/paul/?p=10385

 

</final>

undefinedSubscriure's al meu blog.

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

Ràpid i fàcil: Crear un lloc del SharePoint utilitzant la resta

Hi ha un munt de recursos al voltant d'aquest espectacle com fer això, però no podria trobar un enllaç complet anar a, Així que aquí estem.

Vostè pot crear un lloc del SharePoint utilitzant l'API de resta.  Heus aquí un exemple plenament al forn:

<!--
    SiteRequestForm.html: Recollir informació i crear un lloc per a l'usuari.
-->

<Centre>
<taula>
    <tr>
        <TD>Nom del lloc:</TD>
        <TD><entrada tipus= "text" nom= "SiteName" ID= "SiteName" /></TD>
    </tr>
    <tr>
        <TD colspan= 2">
            <entrada tipus= "enviar" ID= «CreateSiteButton" valor= "Crear un portal" />
        </TD>
    </tr>
</taula>
</Centre>

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

<script>
var CreateSiteLogicContainer = {

    createSiteData: {
            "paràmetres": {
                __metadata: { tipus"": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Títol: "Paultest1",
                Descripció: "resta creació web per Paul!",
                Llengua: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: fals
            }
    },

    createSite: funció () {

        jQuery.support.cors = True;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").val();
        
        $.Ajax({
            URL: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            mètode: CORREU"",

            capçaleres: {
                "accepta": "application/json; OData = depuraci ≤",
                "content-type": "application/json;OData = depuraci ≤",
                "X-RequestDigest": $("#__REQUESTDIGEST").val()
            },

            dades: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            èxit: funció () { alerta("l'èxit"); },
            error: funció () { alerta("error"); }

        });
    },

    wireUpForm: funció () {
        $("#CreateSiteButton").feu clic a(funció () {
            alerta("Punt de provar i crear el lloc.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</script>

Quan l'èxit, s'obté un paquet JSON en resposta com aquesta:

image

Meves idees claus i aprenentatges d'aquest inclouen:

  • Aquest enfocament utilitza jQuery.  En el meu cas, la meva llibreria jQuery està situat a ".../ plugins. "  Voldrà canviar això perquè apunti a la seva localització favorita JQ.
  • Podeu copiar i enganxar aquest fragment tot a Editor continguts Part Web en una pàgina i hauria de funcionar just bé.  Voldrà canviar el punt final de la crida d'API i assegureu-vos que referència JQ correctament.
  • La URL és relativa a l'extrem del seu API.  En el meu cas, està creant subllocs sota https://bigapplesharepoint.com
  • No cal que facilitis una llargada de contingut. Alguns correus de blog i MSDN document implica que fas, però va passar per a mi automàticament, que assumeixo està sent manejada per la crida de .ajax $ propi.
  • Aquesta línia és necessària per evitar una resposta "prohibida": "X-RequestDigest": $("#__REQUESTDIGEST").val().  Hi ha altres maneres de fer-ho, però això és força bonic.  He perdut l'enllaç al bloc que proporciona aquesta drecera.  / H T li, blogger misteriós!

Bona sort i espero que això ajudi a algú.

</final>

undefinedSubscriure's al meu blog.

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

Superar el problema molest amb la URL relativa en llanxa ràpida del SharePoint

Volia afegir un enllaç a la llanxa ràpida navegació l'altre dia i em va dir SharePoint:

image

Versió només text pur d'això és:

Garantir que l'URL és vàlida i comença amb qualsevol un caràcter vàlid (un símbol de nombre (#) o barra inclinada (/)) o un protocol vàlid admesos (per exemple, ' http://’, ' https://’, "arxiu://’, ' ftp://’, "mailto:’, ' Notícies:’).

"Blech i pox de!"Jo vaig dir.

Un workaround per això és utilitzar JavaScript per trobar un enllaç conegut a la llanxa ràpida i substituir el seu comportament.

Per provar això, afegir un nou enllaç al seu lloc de prova així:

image

He fet servir jQuery. Per solucionar-lo, obtenir alguns JavaScript i jQuery a la pàgina utilitzant el seu favorit tècnica i amb una línia de codi com aquest:

 

$(document).preparat( funció () {

    $("un:conté('Prova substitució URL')").feu clic a(funció () { alerta("clic canviat de comportament!"); retorn fals;});

});

I el teu oncle Bob.

El selector de jQuery es troba cada <un> l'etiqueta que ha "Substitució de la prova d'URL" en el seu nom. Pot voler trobar sintonia que depenent del seu enllaç i tal.

El feu clic(funció() Substitueix el SharePoint hauria fet quan fa clic a l'usuari. Assegureu-vos que vostè "return false" o bé es fer les teves coses i llavors tractar la cosa href massa, que és gairebé naturalment no el teu objectiu.

Això va ser fet i prova en un entorn en línia SharePoint sinó que funcionen bé a 2010 i abans també.

</final>

undefinedSubscriure's al meu blog.

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

Ràpid i senzill: RESTA del SharePoint crida únics devolucions 100 Registres

He estat treballant en una web pública davant de la meva pràctica de SharePoint aquí en Nova York i que utilitza una gran quantitat de trucades JavaScript i resta per mostrar contingut.

Durant el desenvolupament i, Puc crear un petit conjunt de dades amb només 10 o tan estirats files en una llista personalitzada i meves trucades resta totes des d'allà.  Un cop em vaig trobar amb la llista de tenir uns cent files de dades a prova per al creixement esperat, Em va semblar que estava aconseguint exactament 100 files tornar enrere damunt les meves trucades resta.

Això és una cosa molt simple d'adreça.  En el meu cas (i crec que en la majoria dels casos), l'omissió resta trucades a SharePoint (i possiblement com un estàndard de la indústria?) retorn 100 files.  Per tornar més que l'omissió, Utilitzeu el paràmetre $top la seva trucada, com a:

OBTENIR /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/elements?$Seleccioneu = ID,Títol,Categories/títol,Blog_x0020_Author/títol,DatePublished,BlogSummary&$ampliar = Blog_x0020_Author,Categories&$filtre =&$part superior = 9999

Triava 9999 en aquest cas ja que sé que growth-wise, no hi haurà més de 200 o tan files afegides a aquesta llista en un any.  Si es converteix en endintre, podem implementar alguna paginació en el camí.

</final>

undefinedSubscriure's al meu blog.

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

Ràpid i senzill: Resoldre "URL invàlid paràmetre” problema amb UpdateListItems en lists.asmx

Quan es treballa amb UpdateListItems mitjançant lists.asmx, és fàcil generar l'error:

Paràmetre URL invàlid.

L'adreça URL proporcionada conté una ordre o un valor no vàlid. Si us plau aturi l'URL nou.

Pot aconseguir aquest error quan us oblideu incloure ID en el la llista dels camps d'actualitzar.  Això, com molts d'aquests SP serveis web, és una mica contradictori ja que necessita d'incloure l'ID de l'atribut d'ID de la <Mètode> element.  I no esteu actualitzat ID i probablement mai volia en primer lloc.

Aquest sabó sobres obres:

<soapenv:Sobres xmlns:soapenv =' http://schemas.xmlsoap.org/SOAP/envelope/'>
  <soapenv:Cos>                      
    <UpdateListItems xmlns =' http://schemas.Microsoft.com/SharePoint/SOAP/'>                     
      <NOMBRELISTA>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</NOMBRELISTA>                     
        <actualitzacions>                     
         <Lot OnError ="Continuï">
          <Mètode ID ="1" Cmd ="Actualització">
            <Nom del camp ="CooperativeLock">tancat!</Camp>
            <Nom del camp ="ID">1</Camp>
          </Mètode>
        </Lot>                     
        </actualitzacions>                
      </UpdateListItems>             
  </soapenv:Cos>         
</soapenv:Sobres>

Si vostè es despulla fora la referència de camp ID llavors aconseguirà el missatge molest "Paràmetre URL invàlid".

</final>

undefinedSubscriure's al meu blog.

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