archivos mensuales: Febrero 2014

Cómo especificar la gente como un ámbito de búsqueda / Fuente del contenido mediante SharePoint 2013 API REST

Tenía razón para trabajar con el SharePoint 2013 API de búsqueda por medio de descanso por primera vez. Quería buscar personas, no documentos. La clave de aprendizaje aquí es que especifique las fuentes de contenido a través de su GUID (o por lo menos en este caso). El siguiente fragmento de código jQuery se muestra cómo:

    loadExpertsAsync: función() {

        jQuery.support.cors = verdadero;

        $.Ajax({
            URL: Esto.CreateFullApiUrl() +
                "?QueryText = 'portales'&sourceid = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Habilidades,Acerca de mi,Intereses,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&ROWLIMIT = 99",
            método: "Obtener",
            cabeceras: { "Aceptar": "application/json; OData = verbose" },
            caché: falso,
            éxito: función (resultado) {

En mi caso, Estoy compitiendo la API con SharePoint online. Para obtener el GUID, He seguido estos pasos:

  1. Acceso al centro de administración de SharePoint
  2. Seleccione "Buscar" de la mano izquierda de navegación
  3. Seleccione "Administrar fuentes resultado"
  4. Seleccione "Resultados de la población Local"
  5. Mira la URL.

Parecía un poco a mi URL:

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

El parámetro sourceid es lo que funcionó para mí.

(Entiendo que el sourceid puede realmente ser una especie de permanente con SP, pero siempre a comprobar todos modos 🙂 ).

</final>

undefinedSuscribirse a mi blog.

Sígueme en Twitter en http://www.twitter.com/pagalvin

Ejemplo SharePoint resto llamadas

Aquí hay un conjunto de llamadas a resto muestra que funciona para mí y puede ayudarte, así. Como de 02/2014, hay dos ejemplos 🙂

  1. Referencia a una columna con espacios en su nombre
  2. Referencia a una columna de selección múltiple
  3. Realizar una búsqueda de personas vía resto

 

Agregaré a esto conforme pasa el tiempo.

Aquí están algunas tintas útiles que he encontrado así como:

Referencia a una columna con espacios en su nombre

Crear una lista personalizada con una columna denominada a "Autor del Blog" (espacio entre el Blog y autor).

El $select para hacer referencia a esa columna es:

image

Simplemente reemplace el espacio con "_x0020_". Vemos el _x0020_ en muchos ejemplos a través de la Internet y el resto no es diferente.

Si no haces eso, es probable que un error como este:

La expresión “Autor del blog” No es válido.

Bastante fácil.

Referencia a una columna de búsqueda selección múltiple

Configurar:

  1. Crear una lista personalizada denominada categorías.
  2. Añadir algunas categorías. He añadido categorías así:image
  3. Crear otra lista personalizada denominada MockBlog y Añadir categorías como una columna de lista de selección múltiple (o columna de sitio si es cómo tiras).

Agregar algunos elementos a la lista de Mockblog y estás listo.

Una llamada de estilo Ajax usando jQuery se verá algo como esto:

serverUrl  = "/_api/web/listas/GetByTitle('MockBlog')/artículos" +
             "?$Seleccione = Title,Categorías/título,Blog_x0020_Author/título" + 
             "&$ampliar = Blog_x0020_Author,Categorías";

Estamos contando SharePoint "Dame el título para todas las categorías (Categorías/título). Obtener los valores reales para Título por $ampliarIng la lista categorías." (Parafraseando a mi descanso es probablemente bastante flojo, Pero cómo estoy interpretando).

Si lo haces vía JavaScript y usando Fiddler para mirar la salida, a cambio tienes algo como esto:

 

image

(Lo anterior es un objeto JSON)

Realizar una búsqueda de personas vía resto

Lo escribió en su blog acerca de esto por separado. La clave consiste en especificar un parámetro sourceid cuyo valor es el GUID de la fuente de contenido de gente Local. (Fuentes de contenido solían llamarse alcances y es oh-mi tanto por no llamarlo todo un ámbito para mí!).

Lea más sobre ello aquí: http://www.mstechblogs.com/paul/?p=10385

 

</final>

undefinedSuscribirse a mi blog.

Sígueme en Twitter en http://www.twitter.com/pagalvin

Fácil y rápida: Crear un sitio de SharePoint usando resto

Hay un montón de recursos mostrar cómo hacerlo, Pero no pude encontrar un enlace acudir integral, Así que aquí estamos.

Puede crear un sitio de SharePoint usando la API de REST.  Aquí hay un ejemplo totalmente al horno:

<!--
    SiteRequestForm.html: Recopilar información y crear un sitio para el usuario.
-->

<Centro>
<mesa>
    <TR>
        <TD>Nombre del sitio:</TD>
        <TD><entrada tipo= "text" nombre"SiteName =" ID."SiteName =" /></TD>
    </TR>
    <TR>
        <TD colspan= "2">
            <entrada tipo= "enviar" ID.= CreateSiteButton"" valor= "Crear el sitio" />
        </TD>
    </TR>
</mesa>
</Centro>

<secuencia de comandos src="../Plugins/jQuery-1.11.0.min.js"></secuencia de comandos>

<secuencia de comandos>
var CreateSiteLogicContainer = {

    createSiteData: {
            "los parámetros": {
                __metadata: { "tipo": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Título: "Paultest1",
                Descripción: "resto-creado web por Pablo!",
                Idioma: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: falso
            }
    },

    createSite: función () {

        jQuery.support.cors = verdadero;

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

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

            datos: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            éxito: función () { alerta("el éxito"); },
            error: función () { alerta("error"); }

        });
    },

    wireUpForm: función () {
        $("#CreateSiteButton").Haga clic en(función () {
            alerta("A punto de probar y crear el sitio.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</secuencia de comandos>

Cuando exitoso, obtienes un paquete JSON en respuesta así:

image

Mis pensamientos claves y aprendizajes de esta inclusión:

  • Este enfoque utiliza jQuery.  En mi caso, mi biblioteca jQuery se encuentra en ".../ plugins. "  Usted querrá cambiar eso para señalar su lugar favorito de JQ.
  • Puede copiar y pegar ese fragmento entero en un elemento Web Editor de contenido en una página y debería funcionar bien.  Usted querrá cambiar el punto final de la llamada de API y asegúrese de que usted referencia JQ correctamente.
  • La URL es relativa a punto final de su API.  En mi caso, es crear subsitios debajo https://bigapplesharepoint.com
  • No es necesario proporcionar una longitud del contenido. Algunas entradas en el blog y MSDN documento implica que hacer, Pero pasó por mí automáticamente, que supongo que está siendo manejado por la llamada .ajax $ sí mismo.
  • Esta línea es necesaria para evitar una respuesta "prohibida": "X-RequestDigest": $("#__REQUESTDIGEST").Val().  Hay otras maneras de hacerlo, Pero esto es muy bonito.  He perdido el enlace al blog que proporcionan este acceso directo.  H/T te, misterioso blogger!

Buena suerte y espero que esto ayude a alguien.

</final>

undefinedSuscribirse a mi blog.

Sígueme en Twitter en http://www.twitter.com/pagalvin

Superar problema molesto con las direcciones URL relativas en lanzamiento rápido de SharePoint

Quería añadir un enlace a la navegación de lanzamiento rápido el otro día y me dijo que SharePoint:

image

Versión en texto puro de es:

Asegúrese de que la URL es válida y comienza ya sea con un carácter válido (un signo de número (#) o diagonal (/)) o un protocolo válido de apoyo (por ejemplo, ' http://’, ' https://’, ' archivo://’, ' ftp://’, ' mailto:’, ' noticias:’).

"Blech y pox!"Le dije.

Una solución a esto es utilizar JavaScript para encontrar un vínculo conocido en la puesta en marcha rápida y reemplazar su comportamiento.

Para probar esto, Añadir un nuevo enlace a su sitio de prueba así:

image

He usado jQuery. Para resolverlo, JavaScript y jQuery hasta la página usando su técnica favorita y con una línea de código como esta:

 

$(documento).listo( función () {

    $("un:contiene('Test reemplazo URL')").Haga clic en(función () { alerta("Haga clic en nuevo comportamiento!"); retorno falso;});

});

Y Bob, su tío.

El selector de jQuery se encuentra cada <un> etiqueta que tenga "prueba enlace" en su nombre. Quizá quieras buscar-melodía que dependiendo de su enlace y tal.

El .click(función() reemplaza lo que habría hecho SharePoint cuando el usuario hace clic en. Asegúrese de que usted "return false" o bien se haga su trabajo y luego intentar lo href también, casi seguro que no es su meta.

Esto fue hecho y prueba en un entorno de SharePoint en línea pero debe funcionar bien en 2010 y antes también.

</final>

undefinedSuscribirse a mi blog.

Sígueme en Twitter en http://www.twitter.com/pagalvin

Rápida y sencilla: SharePoint resto llamar sólo devuelve 100 Registros

Yo he estado trabajando en un sitio web orientada al público para mi práctica en SharePoint Nueva York y usa un montón de llamadas JavaScript y resto para mostrar contenido.

Durante el desarrollo principal, Sólo se crea un pequeño conjunto de datos con 10 o así las filas de una lista personalizada y mis llamadas de resto todo tiraron desde allí.  Una vez me encontré la lista para tener unas cien filas de datos para pruebas de crecimiento esperado, Encontré que estaba recibiendo exactamente 100 filas devueltas en mis llamadas resto.

Esto es una cosa muy simple a la dirección.  En mi caso (y yo creo en la mayoría de los casos), el valor predeterminado resto llamadas a SharePoint (y posiblemente como un estándar del sector?) retorno 100 filas.  Para volver más que el valor por defecto, Utilice el parámetro $top en tu llamada, como en:

OBTENER /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/artículos?$Seleccione ID =,Título,Categorías/título,Blog_x0020_Author/título,DatePublished,BlogSummary&$ampliar = Blog_x0020_Author,Categorías&$filtro =&$Top = 9999

Elegí 9999 en este caso puesto que sé growth-wise, No habrá más 200 o tan filas agregar a esta lista en un año.  Si se vuelve lento, podemos implementar una paginación en el camino.

</final>

undefinedSuscribirse a mi blog.

Sígueme en Twitter en http://www.twitter.com/pagalvin

Rápida y sencilla: Resolver "parámetro de URL no válida” problema con UpdateListItems en lists.asmx

Cuando se trabaja con UpdateListItems vía lists.asmx, es fácil generar el error:

Parámetro de URL no válida.

La URL proporcionada contiene un comando no válido o valor. Por favor comprueba la URL otra vez.

Usted puede conseguir este error cuando se olvida de incluir ID en la la lista de campos para actualizar.  Esto, como muchos de estos SP servicios web, es un poco ilógica puesto que es necesario incluir el ID en el atributo ID de la <Método> elemento.  Y no estás actualizado ID y probablemente nunca quiero en primer lugar.

Este sobre jabón funciona:

<soapenv:Xmlns envolvente:soapenv =' http://schemas.xmlsoap.org/SOAP/Envelope/'>
  <soapenv:Cuerpo>                      
    <UpdateListItems xmlns =' http://schemas.Microsoft.com/SharePoint/SOAP/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <actualizaciones>                     
         <Lote OnError ="Continuar">
          <Método ID ="1" Cmd ="Update">
            <Nombre del campo ="CooperativeLock">bloqueado!</Campo>
            <Nombre del campo ="ID">1</Campo>
          </Método>
        </Lote>                     
        </actualizaciones>                
      </UpdateListItems>             
  </soapenv:Cuerpo>         
</soapenv:Envolvente>

Si tiras a la referencia del campo ID entonces obtendrás el molesto mensaje "Parámetro de URL no válida".

</final>

undefinedSuscribirse a mi blog.

Sígueme en Twitter en http://www.twitter.com/pagalvin