archivi mensili: Febbraio 2014

Come specificare la gente come un ambito di ricerca / Origine di contenuto utilizzando SharePoint 2013 API REST

Ho avuto ragione a lavorare con SharePoint 2013 API di ricerca tramite REST per la prima volta. Ho voluto cercare persone, non documenti. La chiave qui è quella di apprendimento è specificare origini di contenuto tramite il relativo GUID (o almeno in questo caso). Illustrato nel seguente frammento di jQuery come:

    loadExpertsAsync: funzione() {

        jQuery.support.cors = true;

        $.AJAX({
            URL: Questo.CreateFullApiUrl() +
                "?QueryText = 'portali'&SourceId = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&scegliereProprietà ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Competenze,AboutMe,Interessi,JobTitle,PastProjects,PictureURL,PictureURL,TwitterHandle,LinkedInProfileUrl,PictureURL,GoogleCirclesProfileUrl'" +
                "&ROWLIMIT = 99",
            Metodo.: "Ottieni",
            intestazioni: { "Accettare": "applicazione/json; OData = verbose" },
            cache: falso,
            successo: funzione (risultato) {

Nel mio caso, Sono in esecuzione le API contro SharePoint online. Per ottenere il GUID, Ho seguito questi passaggi:

  1. Accesso al centro di admin di SharePoint
  2. Selezionare "Cerca" dalla mano sinistra spostamento
  3. Selezionare "Gestione fonti di risultato"
  4. Selezionare "Risultati di gente locale"
  5. Guardate l'URL.

Il mio URL sembrava qualcosa come:

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

Il parametro sourceid è ciò che ha funzionato per me.

(Capisco che il sourceid potrebbe in realtà essere una sorta di permanente cosa con SP, ma sarò sempre controllare comunque 🙂 ).

</fine>

undefinedIscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Esempio SharePoint resto chiamate

Ecco una serie di chiamate di resto di campione che funziona per me e può aiutarvi anche. Come di 02/2014, ci sono due esempi 🙂

  1. Fare riferimento a una colonna con spazi nel nome
  2. Fare riferimento a una colonna di seleziona multipla
  3. Eseguire una ricerca di persone tramite il resto

 

Aggiungerò a questo col passare del tempo.

Qui ci sono alcuni inchiostri utili che ho trovato pure:

Fare riferimento a una colonna con spazi nel nome

Creare un elenco personalizzato con una colonna denominata "Autore del Blog" (spazio tra il Blog e autore).

Il $select per fare riferimento a tale colonna è:

image

Semplicemente sostituire lo spazio con "_x0020_". Vediamo la _x0020_ in molti esempi in tutto il internets e resto non è diverso.

Se non fai che, Tu sei responsabile ottenere un messaggio di errore come questo:

L'espressione “Autore del Blog” non è valido.

Abbastanza facile.

Fare riferimento a una colonna di ricerca selezione multipla

Impostare:

  1. Creare un elenco personalizzato denominato categorie.
  2. Aggiungi alcune categorie. Ho aggiunto questa convenzione categorie:image
  3. Creare un altro elenco personalizzato denominato MockBlog e aggiungere categorie come una colonna di elenco di selezione multipla (o colonna del sito se questo è come si tira).

Aggiungere alcuni elementi all'elenco Mockblog e siete pronti.

Una chiamata di stile Ajax utilizzando jQuery avrà un aspetto come questo:

  = serverUrl "/API/web/liste/GetByTitle('MockBlog')/elementi" +
             "?$Selezionare = titolo,Categorie/titolo,Blog_x0020_Author/titolo" + 
             "&$Espandere = Blog_x0020_Author,Categorie";

Stiamo raccontando SharePoint "Dammi il titolo per tutte le categorie (Categorie/titolo). Ottenere i valori effettivi per Titolo da $EspandereING elenco categorie." (Mio parafrasando riposante è probabilmente abbastanza sciolto, ma questo come sto interpretarlo).

Se stai facendo questo tramite JavaScript e usando Fiddler a guardare l'output, qualcosa di simile si ottiene in cambio:

 

image

(Quanto sopra è un oggetto JSON)

Eseguire una ricerca di persone tramite il resto

Ho bloggato su questo separatamente. La chiave è quello di specificare un parametro sourceid cui valore è il GUID dell'origine di contenuto gente locale. (Le origini di contenuto usato per essere chiamato ambiti ed è oh-mio così difficile non chiamare tutto un ambito per me!).

Per saperne di più su di esso qui: http://www.mstechblogs.com/paul/?p=10385

 

</fine>

undefinedIscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Facile e veloce: Creare un sito di SharePoint utilizzando il resto

Ci è un sacco di risorse intorno che mostrano come fare questo, ma non riuscivo a trovare un link completo go-a, così siamo qui.

È possibile creare un sito di SharePoint utilizzando l'API REST.  Ecco un esempio completamente al forno:

<!--
    SiteRequestForm.html: Raccogliere informazioni e creare un sito per l'utente.
-->

<centro>
<tabella>
    <TR>
        <TD>Nome del sito:</TD>
        <TD><ingresso tipo= "testo" nome= "NomeSito" Identificazione= "NomeSito" /></TD>
    </TR>
    <TR>
        <TD colspan= 2"">
            <ingresso tipo= "Invia" Identificazione= CreateSiteButton"" valore= "Crea il sito" />
        </TD>
    </TR>
</tabella>
</centro>

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

<script di>
var CreateSiteLogicContainer = {

    createSiteData: {
            «parametri": {
                __metadata: { "tipo": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Titolo: "Paultest1",
                Descrizione: "web resto-creato da Paolo!",
                Lingua: 1033,
                WebTemplate: m."",
                UseUniquePermissions: falso
            }
    },

    createSite: funzione () {

        jQuery.support.cors = true;

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

            intestazioni: {
                "Accettare": "application/json; OData = verbose",
                "content-type": "application/json;OData = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            dati: Stringify(CreateSiteLogicContainer.createSiteData),

            successo: funzione () { avviso("il successo"); },
            errore: funzione () { avviso("errore"); }

        });
    },

    wireUpForm: funzione () {
        $("#CreateSiteButton").fare clic su(funzione () {
            avviso("Per cercare di creare il sito.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</script di>

Quando è successo, si ottiene un pacchetto JSON in risposta come questo:

image

I miei pensieri chiavi e apprendimenti da questo includono:

  • Questo approccio utilizza jQuery.  Nel mio caso, mia libreria jQuery si trova in ".../ plugin. "  Ti consigliamo di cambiare che per puntare alla tua posizione preferita di JQ.
  • È possibile copiare e incollare quel frammento intero in una Web Editor contenuto Part in una pagina e dovrebbe funzionare bene.  Ti consigliamo di cambiare il punto di fine della chiamata API e assicurarsi che si fa riferimento JQ correttamente.
  • L'URL è relativo dell'endpoint di API.  Nel mio caso, è la creazione di siti secondari sotto https://bigapplesharepoint.com
  • Non è necessario fornire una contenuto-lunghezza. Alcuni blog e MSDN documento implica che si fa, ma è successo per me automaticamente, che presumo viene gestita dalla chiamata del AJAX $.
  • Questa linea è necessaria al fine di evitare una risposta "proibita": "X-RequestDigest": $("#__REQUESTDIGEST").Val().  Ci sono altri modi per farlo, ma questo è abbastanza piacevole.  Ho perso il link al blog che ha fornito questa scorciatoia.  H/T a voi, misteriosa blogger!

Buona fortuna e spero che questo aiuti qualcuno fuori.

</fine>

undefinedIscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Superare il fastidioso problema con gli URL relativi in lancio rapido di SharePoint

Volevo aggiungere un link per la navigazione veloce lancio l'altro giorno e mi ha detto che SharePoint:

image

Versione testo puro di che è:

Verificare che l'URL è valido e inizia con un carattere valido (cancelletto (#) o barra (/)) o un protocollo valido supportato (per esempio, ' http://’, ' https://’, ' file://’, ' ftp://’, ' mailto:’, ' notizie:’).

"Blech e pox!"Ho detto.

Una soluzione alternativa a questo è utilizzare JavaScript per trovare un link noto nel lancio rapido ed eseguire l'override del relativo comportamento.

Per testare questa, aggiungere un nuovo link al tuo sito di prova questa convenzione:

image

Ho usato jQuery. Per risolverlo, ottenere alcuni JavaScript e jQuery nella pagina utilizzando la vostra tecnica preferita e con una riga di codice come questo:

 

$(documento).pronto( funzione () {

    $("un:contiene('Test sostituzione URL')").fare clic su(funzione () { avviso("comportamento modificato Clicca!"); ritorno falso;});

});

E tuo zio Bob.

Il selettore di jQuery trova ogni <un> Tag che ha "Sostituzione del Test URL" nel suo nome. È possibile trovare-melodia che a seconda del tuo link e simili.

La Clicca(funzione() esegue l'override di qualsiasi SharePoint avrebbe fatto quando l'utente fa clic su. Assicurarsi che "return false", altrimenti sarà fare la tua roba e poi provare a href cosa troppo, che non è quasi certamente il vostro obiettivo.

Questo è stato fatto e prova in un ambiente di SharePoint online, ma dovrebbe funzionare bene in 2010 e all'inizio troppo.

</fine>

undefinedIscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Semplice e veloce: SharePoint resto chiamare solo ritorni 100 Record

Sto lavorando su un sito web di fronte pubblico per la mia pratica di SharePoint qui in New York e utilizza un sacco di chiamate JavaScript e resto per mostrare i contenuti.

Durante lo sviluppo del mainline, Creare un piccolo set di dati con solo 10 o così le righe in un elenco personalizzato e tutte le mie chiamate resto tirato da lì.  Una volta ho urtato l'elenco per avere qualche centinaia di righe di dati per il test di crescita atteso, Ho trovato che mi stavo esattamente 100 righe restituite indietro sulle mie chiamate resto.

Questa è una cosa molto semplice indirizzo.  Nel mio caso (e credo che nella maggior parte dei casi), l'impostazione predefinita resto chiama per SharePoint (e possibilmente come uno standard industriale?) ritorno 100 righe.  Per restituire più di default, utilizzare il parametro $top su chiamata, come in:

OTTENERE /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/elementi?$selezionare = ID,Titolo,Categorie/titolo,Blog_x0020_Author/titolo,DatePublished,BlogSummary&$Espandere = Blog_x0020_Author,Categorie&$filtro =&$Top = 9999

Ho scelto 9999 in questo caso da allora so che growth-wise, non ci sarà più di 200 o così aggiunte a questo elenco in un anno.  Se diventa sgraziato, Noi possiamo attuare qualche spostamento lungo la strada.

</fine>

undefinedIscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Semplice e veloce: Risolvere "parametro URL non valido” problema con UpdateListItems in lists

Quando si lavora con UpdateListItems via lists, è facile da generare l'errore:

Parametro URL non valido.

L'URL fornito contiene un comando o un valore non valido. Si prega di controllare nuovamente l'URL.

È possibile ottenere questo errore quando si dimentica di includere ID nell'elenco dei campi per l'aggiornamento.  Questo, come un sacco di questi SP servizi web, è un po' controintuitivo, poiché è necessario includere l'ID nell'attributo ID della <Metodo> elemento.  E tu non sei aggiornato ID e probabilmente mai desidera in primo luogo.

Questa busta SOAP opere:

<soapenv:Busta xmlns:soapenv =' http://schemas.xmlsoap.org/soap/envelope/'>
  <soapenv:Corpo>                      
    <UpdateListItems xmlns =' http://schemas.Microsoft.com/SharePoint/SOAP/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <aggiornamenti>                     
         <Lotto OnError ="Continuare">
          <Metodo ID =1"" Cmd ="Aggiornamento">
            <Nome campo ="CooperativeLock">bloccato!</Campo>
            <Nome campo ="ID">1</Campo>
          </Metodo>
        </Lotto>                     
        </aggiornamenti>                
      </UpdateListItems>             
  </soapenv:Corpo>         
</soapenv:Busta>

Se striscia fuori il riferimento del campo ID, si otterrà il fastidioso messaggio "Parametro URL non valido".

</fine>

undefinedIscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin