Search Driven Development (IV): Cross-site publishing

Muy buenas a todos,

Tarde de lluvia aquí en Madrid y que mejor que ponerse a escribir en el blog para contar algunas cosas interesantes :). Hace unos meses escribí una serie de artículos en la que hablaba sobre “Search Driven Development”, como configurar nuestros sitios, la navegación basada en metadatos y todos los aspectos necesarios para tener un catálogo y elementos de ese catálogo sin escribir código. Aquí os dejo los enlaces en los que hablaba de todos esos temas.

Primeros Pasos con SharePoint OnLine: Search Driven Development

Search Driven Development en SharePoint (II): Catálogos y Elementos de Catálogo

Search Driven Development (III): El WebPart de Refinamiento

Preparando una ejemplo para una mesa redonda en la que colaboraré con la gente de MadPoint el próximo 7 de Mayo, he decidido retomar el artículo que me faltaba en esta serie y aquí os lo traigo. Me había quedado pendiente montar un entorno de cross-site publishing en el que en un sitio de publicación se publicarán los elementos del catálogo y en un sitio de consumo, se pudieran, usando los webpart de búsqueda, consumir esos elementos, incluyendo URLs amigables y navegación basada en metadatos. Todo esto puede parecer muy complejo, y que necesitará de muchísima configuración, pero ya veréis que es algo muy sencillo. La estructura que queremos conseguir es como la siguiente:

crosssiteschem

Esta característica de cross-site publishing es otra de las nuevas e interesantes funcionalidades que nos ofrece SharePoint 2013. Para conseguir esta configuración, vamos a llevar a cabo una serie de pasos que veremos a continuación, y que podremos aplicar tanto a SharePoint OnLine como SharePoint 2013 en su versión On-Premises. El objetivo de nuestro ejemplo, será crear un sitio de consumo que nos permita organizar una serie de productos de un catálogo en base a categorías y elementos que pertenecen a cada una de dichas categorías, y que dichas categorías sean las que definan la navegación de nuestro sitio, además los elementos serán publicados desde un sitio de publicación.

Creando las colecciones de sitios

El primer paso es crear las colecciones de sitios que vamos a utilizar en el ejemplo. En este caso crearemos dos, una primera de publicación y otra de consumo. Ambas colecciones de sitios las crearé bajo la plantilla de publicación, yo he llamado a una publicador y otro consumidor.

Las colecciones de sitio se crean de forma relativamente distintas si estamos en SharePoint OnLine o SharePoint 2013, yo las he creado en SharePoint OnLine para el ejemplo.

Captura de pantalla 2015-04-26 a las 20.19.13

Creando el almacén de términos

El siguiente paso, es definir el almacén de términos que va a categorizar los elementos que forman parte de nuestro catálogo, para ello accedemos a la administración de nuestro almacén de términos, que como sabéis está disponible tanto desde la administración central (o el panel de administración de SharePoint OnLine) como desde la configuración del sitio, y creamos la estructura, tiene que quedar de una forma similar a la siguiente:

Captura de pantalla 2015-04-26 a las 20.34.23

Configurando el sitio de publicación

Una vez que ya tenemos la categorización que tendrá nuestro catálogo de productos vamos a configurar el sitio de publicación con todos los elementos necesarios. Lo que vamos a hacer en el este sitio es lo siguiente:

  • El primer paso es activar en las “Características de la colección de sitios”, la característica “Publicación de colecciones entre sitios”.
  • Crear cuatro columnas de sitio: Una llamada Resumen de varias líneas de text, otra FechaPublicacion de tipo Fecha, otra llamada Clasificación de tipo metadatos administrados asociada al almacén creado en el apartado anterior y otras llamada autores que será de una línea de texto.
  • Crear un tipo de contenido que herede del Tipo de Contenido Elemento y al que se asocien las cuatro columnas anteriores y que se llamará “Libros”.
  • Crear una lista llamada “Productos”, para la que habilitaremos en la configuración de la misma la Administración de tipos de contenido y le asociaremos el tipo de contenido que acabamos de crear

Con esto ya tendremos preparado nuestro sitio de publicación. Este puede ser el momento para añadir algunos elementos a la lista que hemos creado también.

Creando el catálogo del sitio de publicación

Antes de pasar a la configuración del sitio de consumo, vamos a habilitar la lista para que pueda ser utilizada como catálogo. Para ello, dentro de la lista “Productos” que hemos creado, vamos a Configuración de la lista->Configuración del catálogo, esto nos llevará hasta la página que vemos a continuación.

Captura de pantalla 2015-04-26 a las 21.04.30

Aquí tendremos que indicar varias cosas, por un lado indicar que queremos habilitar esta lista para ser un catálogo, a continuación también indicaremos que columnas de la lista queremos que formen parte de la url del catálogo, y por último el campo, que normalmente se carga automáticamente, que establecerá la jerarquía de navegación. Una vez completados todos los aspectos de configuración, pulsamos en aceptar. Ahora ya podremos pasar a configurar el sitio de consumo. No obstante antes, en el apartado de Configuración Avanzada en la configuración de la lista indicaremos que se vuelva a indexar la lista en el próximo rastreo.

Configurando el sitio de consumo

Para terminar, nos vamos a la colección de sitios que hemos creado para trabajar como consumidor. Para configurar esta colección de sitios nos vamos a la configuración del sitios y entramos en Administrar conexiones del catálogo.

Captura de pantalla 2015-04-26 a las 21.13.46

Cuando entramos en esta opción pulsamos sobre Conectar a un catálogo y después seleccionamos la opción del catálogo que creamos en el sitio de publicación, observaremos que tenemos esa opción disponible.

managercatalog

Si todo lo hemos configurado correctamente, solo tendremos que configurar un aspecto, y es la raíz de la jerarquía de elementos, en donde tendremos que indicar la misma desde nuestro almacén de términos. Tras esto pulsamos sobre Aceptar y automáticamente todo estará funcionando correctamente como vemos en la figura siguiente.

Captura de pantalla 2015-04-26 a las 21.27.38

Como se puede observar automáticamente se ha creado toda la estructura de navegación usando el almacén de términos que habíamos creado. Además si accedemos, vemos que podemos entrar a todos los elementos de cada categoría, o si entramos a alguno de ellos al detalle. Es decir, configurando el catálogo toda la configuración de los webparts de búsqueda y de la navegación basada en metadatos se ha realizado automáticamente.

Captura de pantalla 2015-04-26 a las 21.32.24

Captura de pantalla 2015-04-26 a las 21.32.36

Lo único que faltaría sería usar los Display Templates para dar formato a las visualizaciones de los elementos. Para ello se puede usar lo que ya comenté en la entrada del post sobre ese tema:

Introducción al uso de Display Templates en SharePoint OnLine

Os dejo también un enlace con un tutorial muy detallado y completo sobre cómo configurar una solución Cross-Site Publishing y Search Driven Development.

http://blogs.technet.com/b/tothesharepoint/archive/2013/02/20/stage-1-create-site-collections-for-cross-site-publishing.aspx

Espero que os haya resultado interesante. Como os digo en la mesa redonda del evento que organiza MadPoint el próximo 7 de Mayo, mostraré el ejemplo completo funcionando, donde usaré ya los DisplayTemplates.

Os dejo también el enlace del evento por si alguien se quiere apuntar, se hablará no solo de SSD, sino de todas las formas de extender SharePoint OnLine y On-Premises, creo que va a ser muy interesante.

http://www.madpoint.net/2015/04/22/ciclo-de-mesas-redondas-opciones-de-desarrollo-en-sharepoint-y-office-365/

Un saludo a todos.

Anuncios

Search Driven Development (III): El WebPart de Refinamiento

Muy buenas a todos de nuevo,

Antes de nada, os deseo una Feliz Navidad a todos. Hoy quiero seguir profundizando un poco más en el concepto de Search Driven Development. Vamos a trabajar con el WebPart de refinamiento. Al igual que el Content Search WebPart, el de refinamiento es completamente configurable de una forma muy sencilla. Mucho más que lo era el WebPart de refinamiento en SharePoint 2010.

Además, y aunque no es objeto de este post, también se pueden crear plantillas para estos refinadores de búsqueda, tal y como hacíamos con los tipos de resultado.

Para explicar como trabajar con el WebPart de refinamiento he planteado un escenario en el que dispongo de un catálogo de formaciones y he creado al igual que hacía en los anteriores post, su respectiva página de catálogo y elementos de catálogo, configurando posteriormente el Content Search WebPart de cada uno.

Primeros Pasos con SharePoint OnLine: Search Driven Development

Search Driven Development en SharePoint (II): Catálogos y Elementos de Catálogo

El tipo de Contenido que he creado para el catálogo es el siguiente:

Captura de pantalla 2014-12-26 a las 2.24.48

Una vez creado el catálogo y su funcionalidad, añadimos a la página del catálogo el WebPart de refinamiento, dándonos un aspecto como el siguiente.

Captura de pantalla 2014-12-26 a las 2.20.45

El caso es que para nuestro catálogo, no es suficiente con los refinadores por defecto que nos carga el WebPart de refinamiento, queremos establecer nuestros propios refinadores, basados en el tipo de contenido que hemos definido. En nuestro caso queremos poder refinar nuestro catálogo por: Tipo de Formación, Autor, Temática y Valoración.

Definiendo las propiedades administradas para el refinamiento

Todas las opciones de refinamiento de nuestro WebPart se basan en propiedades administradas de nuestro esquema de búsqueda. Pero lo harán en unas propiedades especiales que en nuestro esquema aparecen con el nombre de: RefinableString, RefinableInt, RefinableDouble, RefinableDate, en función del tipo de dato que representa cada una, disponiendo de un número elevado de cada una de ellas para poder configurar correctamente nuestras propiedades administradas de refinamiento.

Lo que tendremos que hacer es, asociar las propiedades rastreadas que queramos usar en el refinamiento a las propiedades administradas correspondientes. Vamos a ver como hacer esto.

Para empezar vamos a Configuración del sitio->Esquema de Búsqueda de la administración de la colección de sitios (a nivel de sitio no tenemos permisos para hacerlo) y accederemos al esquema de búsqueda de la colección de sitios.

Captura de pantalla 2014-12-26 a las 2.40.16

Lo que haremos ahora, es ir a las distintas propiedades administradas para asociarlas adecuadamente. En mi ejemplo, quiero añadir cuatro refinadores, tres pueden ser mapeados como cadena y uno como número. Las propiedades administradas de refinamiento tienen números correlativos asignados (por ejemplo RefinableString00 a RefinableString99), así que seleccionamos la propiedad que queremos mapear y entramos a ella.

Captura de pantalla 2014-12-26 a las 2.46.12

Una vez dentro, tenemos que asignar las propiedades rastreadas. Para ello, hacemos click en asignar propiedades.

Captura de pantalla 2014-12-26 a las 2.46.24

Captura de pantalla 2014-12-26 a las 2.46.48

Buscamos la propiedad rastreada que queramos mapear, por defecto SharePoint, para cada columna que hayamos definido crea dos propiedades rastreadas, como las que vemos a continuación:

Captura de pantalla 2014-12-26 a las 2.48.36

Para el refinamiento, tenemos que seleccionar la propiedad que tiene la forma ows_<nombre de la propiedad>. Seleccionamos ésta y damos a aceptar, luego guardamos los cambios hechos en la propiedad administrada y, en nuestro caso, como queríamos crear cuatro refinadores personalizados, repetimos la tarea para el resto de refinadores.

Personalizando el WebPart de refinamiento

Una vez que ya hemos definido los refinadores personalizados que vamos a utilizar, podemos ir a la página del catálogo para configurar el WebPart de refinamiento. Para ello nos iremos a las propiedades de dicho WebPart y la opción de “Elegir refinadores”.

Captura de pantalla 2014-12-26 a las 3.00.20

Captura de pantalla 2014-12-26 a las 3.00.38

Por defecto nos aparecen los refinadores que vemos en la imagen anterior. En nuestro caso, queremos cambiarlos por los que habíamos definido en el paso anterior. Por lo que cambiamos los refinadores por defecto por los siguientes: RefinableString01, RefinableString02, RefinableString03, RefinableInt01.

Captura de pantalla 2014-12-26 a las 3.03.36

Si hacemos click sobre cada uno de los refinadores podemos cambiar algunos aspectos de la visualización de los mismos. Entre otras cosas, nombre de ese refinador a  la hora de mostrarlo, tipo de plantilla (en función del tipo de refinador), y aspectos de configuración que varían en función del tipo de refinador que hayamos seleccionado.

Captura de pantalla 2014-12-26 a las 3.06.17

Captura de pantalla 2014-12-26 a las 3.06.35

Cuando hayamos configurado todos los refinadores, pulsamos aceptar y guardamos los cambios en el WebPart, con lo que ya tendremos nuestra página de Catálogo con unos refinadores personalizados y ajustados a nuestras necesidades. Es posible, que cuando se hayan definido los mismos, inicialmente, si no se ha realizado todavía una re-indexación de la lista posterior al mapeo adecuado de todas la propiedades administradas, no aparezca nada, esto se subsanará en cuestión de minutos, cuando la re-indexación se complete correctamente. Este es el aspecto que sin nada de diseño, nos queda del Content Search WebPart y el WebPart de refinamiento.

Captura de pantalla 2014-12-26 a las 3.11.27

Y nada más por hoy, espero que toda esta serie de artículos relacionados con el Search Driven Development, os estén siendo de utilidad. Os dejo algunos enlaces que me han servido a la hora de preparar el post.

http://blogs.technet.com/b/tothesharepoint/archive/2013/06/19/stage-14-configure-refiners-for-faceted-navigation.aspx

http://blogs.technet.com/b/tothesharepoint/archive/2013/11/11/how-to-add-refiners-to-your-search-results-page-for-sharepoint-2013.aspx

Un saludo.

Search Driven Development en SharePoint (II): Catálogos y Elementos de Catálogo

Hola de nuevo a todos, en mi anterior entrada, hablaba sobre como podíamos usar algunos de los elementos de las búsquedas en SharePoint 2013 y SharePoint OnLine para evitar tener que hacer desarrollos. En el ejemplo vimos como podíamos crear una página que nos mostrara los elementos de una lista sin escribir una sola línea de código.

Primeros Pasos con SharePoint OnLine: Search Driven Development

Hoy quiero avanzar un poco más en ese ejemplo. Al final del mismo teníamos una url /autores que nos mostraba una lista con los autores que habíamos creado, teníamos una página con el catálogo de autores. Pero, ¿Y si quisiéramos acceder a un autor concreto?, es decir, acceder a una URL del tipo /autores/nombre-del-autor. ¿Es necesario crear un término de navegación para cada elemento del catálogo?, ¿tenemos que hacer algún desarrollo para esto?. La respuesta a ambas preguntas es no. Evidentemente, seguiremos con la premisa de hacerlo sin escribir ninguna línea de código. ¿Cómo vamos a hacerlo entonces?, nuevamente, haremos uso del Content Search WebPart.

Creando la página de elementos de catálogo

Lo primero que vamos a hacer es crear una nueva página en la biblioteca Páginas con el nombre autor-view.aspx.

Captura de pantalla 2014-12-13 a las 22.34.12

Modificando el término de navegación por metadatos

Una vez creada la página, vamos a modificar el término de navegación Autores que tenemos creado y al que asociamos la página autores.aspx para poder acceder a la URL /autores y que nos devolviera el resultado esperado. Para ello vamos a Configuración del sitio->Administración de almacenamiento de términos para el sitio en que estamos, es decir, en la Administración del sitio y seleccionamos el término Autores del almacén de metadatos de navegación.

Captura de pantalla 2014-12-13 a las 22.39.33

En la pestaña Página basada en términos, en la parte inferior, tenemos la sección Configuración de la página de elementos del catálogo. Es ahí donde vamos a indicar a qué página queremos que nos lleve SharePoint cuando accedamos a un elemento del catálogo. En esta sección marcamos las dos casillas Cambiar la página de elemento de catálogo para esta categoría y Cambiar la página de elemento de catálogo para los elementos y pulsando en el botón Examinar en ambos casos, nos aparecerá la opción donde indicar la página a donde queremos ir. Aquí indicaremos la página que creamos en el apartado anterior.

Captura de pantalla 2014-12-13 a las 22.57.22

Cuando lo hayamos hecho, el término quedará de la forma que vemos en la siguiente imagen, lo guardaremos y ya habremos indicado, a la página que debe ir cuando accedamos a un elemento del catálogo, sin tener que crear un término manualmente para cada uno ni hacer ningún desarrollo.

Captura de pantalla 2014-12-13 a las 22.57.54

Añadiendo el Content Search WebPart a la página

Si ahora usamos una URL del tipo /autores/1, veremos que nos redirige efectivamente a la página que deseamos, pero como no habíamos hecho nada sobre ella, esta aparece en blanco. Para que en cada caso nos devuelva el resultado deseado vamos a hacer nuevamente uso del Content Search WebPart. Lo primero que vamos a hacer por tanto es añadirlo a la página. En las propiedades del mismo, accedemos nuevamente a la opción Cambiar consulta.

Captura de pantalla 2014-12-13 a las 23.08.40

Nuevamente seleccionaremos como origen de los resultados de búsqueda el de Autores que habíamos creado en el ejemplo anterior. Vamos a añadir un filtro de propiedades. Lo haremos por el valor que queremos posteriormente indicar como parámetro de la URL. Por ejemplo, si queremos una URL del tipo /autores/1 indicaremos el filtro por el campo ID, si por ejemplo lo queremos hacer para el Título del elemento lo haremos por el campo Title, en nuestro caso esta será la opción. En la opción, Seleccionar valor indicamos Valor de un token de dirección de URL y le damos a Agregar filtro de propiedades.

Captura de pantalla 2014-12-13 a las 23.10.30

Al agregarlo ya tendremos configurado el Content Search WebPart para que funcione como deseamos.

Captura de pantalla 2014-12-13 a las 23.10.46

Lo guardamos y volvemos a la página, en mi caso por ejemplo /autores/JCRA para acceder a uno de los elementos que tenía guardados en la lista y el resultado es el que esperábamos.

Captura de pantalla 2014-12-13 a las 23.25.54

Las oportunidades que nos ofrecen las funcionalidades descritas en estos dos tutoriales nos permiten eliminar una gran cantidad de desarrollos en SharePoint. Imaginaros un “Sitio” con categoría de productos, la facilidad para gestionar el acceso a los catálogos de productos y el acceso al detalle de cada producto con este sistema es enorme.

Y esto es todo por hoy. Sigue quedando pendiente ver como personalizar los resultados de búsqueda, espero poder hablar sobre el tema en breve, pero me parecía interesante hablaros sobre esto antes.

Espero que os resulte útil.

Un saludo a todos