Artículo original publicado el lunes, 20 de agosto de 2012

Vale, admito que es un título algo algo largo y ridículo. Se preguntarán ¿de qué está hablando Steve? Permítanme que lo ponga de este modo: hace algunos días me encontré con una pregunta similar a la siguiente: "Tengo conocidos que trabajan para diferentes departamentos de la organización, como Ventas, Finanzas, etc. Cuando alguien escribe una consulta similar a "estrategia de gestión de ventas", me gustaría que se mostrasen también las personas que trabajan en el Departamento de ventas". A mí me parece un uso bastante guay de la característica Reglas de consulta en SharePoint 2013.

Para empezar, retrocedamos un paso y echemos un vistazo a una característica de compatibilidad relacionada que vamos a utilizar. En SharePoint 2013, cuando se importan perfiles de Active Directory, este rellena automáticamente un conjunto de términos especial en el Servicio de metadatos administrados. De hecho, crea un grupo maestro llamado "Personas" y rellena tres conjuntos de términos: Departamento, Puesto y Ubicación (NOTA: no se puede garantizar que los tres sigan ahí cuando se envíe el producto; puede que al final solo queden dos). Durante el proceso de importación de perfiles, todos los conjuntos de términos se rellenarán con los valores únicos de todos los usuarios para cada una de las propiedades. Esto es de una gran ayuda para este problema, ya que, cuando miro mis MMS, veo que la lista Departamentos incluye "Ventas" porque tengo usuarios con ese valor en el atributo Departamento de AD:

 

Muy bien, ahora crearemos una regla de consulta. Como se mencionó en el primer artículo sobre reglas de consulta (http://blogs.msdn.com/b/sharepoint_sp/archive/2012/09/20/uso-de-las-reglas-de-consulta-los-tipos-de-resultado-y-las-plantillas-de-visualizaci-243-n-para-la-b-250-squeda-personalizada-de-informes-de-ventas-en-sharepoint-2013.aspx), lo primero que haremos será establecer cuándo se activará la regla. En este caso utilizaremos la opción Coincidencia de texto de consulta avanzada y elegiremos la última selección, que es La consulta contiene una entrada del diccionario:. Aparece un selector desplegable, lo cual es algo desafortunado porque puede llevar a confusión. Lo realmente importante es que hagamos clic en el vínculo Importar de taxonomía que hay justo debajo. Al hacer esto, veremos un selector estándar de MMS. Expandimos la instancia de MMS local y hacemos clic en el conjunto de términos Departamento porque deseamos que la regla se active cuando el texto de consulta contenga una palabra que sea un departamento de la organización.

Para la siguiente parte de la regla, activamos las tres casillas para ver los términos de consulta. Así, si una consulta completa es igual al nombre de un Departamento o si la consulta comienza con o termina por el nombre de un departamento, la regla se activará. Por último, para configurar la última parte de la regla, si hay una coincidencia, lo que queremos es asignar la coincidencia a {subjectTerms} y los términos restantes a {actionTerms} De este modo, si utilizamos el ejemplo anterior y buscamos "estrategia de gestión de ventas", como los términos de consulta comienzan con "ventas", que es un valor de departamento válido en MMS, la regla de consulta debería coincidir. "Ventas" será {subjectTerms} y "estrategia de gestión" será {actionTerms}. Este es el aspecto de la configuración:

Ahora que la regla está activada, deseo agregar a algunas personas del departamento de ventas a la parte superior de los resultados de la consulta. Así pues, me pongo a trabajar en la siguiente parte de la regla de consulta, que es la acción que voy a realizar. Hago clic en el vínculo Agregar bloque de resultados y abro el diálogo. En este caso deseo agregar un Bloque de resultados que mostrará resultados de personas, así que lo primero que hago es hacer clic en la lista desplegable Buscar este origen y cambiarla de Origen original de la consulta a Resultados de personas locales (sistema).  Hago esto primero para que el generador de consultas utilice ese origen cuando modifique y pruebe la consulta. Una vez hecho esto, basándome en la regla de coincidencia, sé que cualquier Departamento que se encuentre estará incluido en el término especial “{subjectTerms}”. Para utilizarlo, hago clic en el botón Lanzar generador de consultas para poder modificar la consulta. Elimino cualquier texto existente que esté en el área de edición de texto de la Consulta, hago clic en la lista desplegable del filtro Propiedades y luego en la opción Mostrar todas las propiedades administradas. Así se vuelve a rellenar la lista desplegable con todas las propiedades administradas y en esa lista yo selecciono el Departamento. En la lista desplegable del calificador hago el cambio de "Contiene" a "Es igual a" y luego en la lista desplegable Seleccionar valor elijo {subjectTerms} (la entrada del diccionario coincidente del departamento) y luego hago clic en el botón Agregar filtro de propiedad . Tendrá el aspecto siguiente:

El proceso está tomando buena forma. Ahora deseo agregarle un toque más personal y para conseguirlo hago clic en la pestaña Ordenación del generador de consultas. En este caso, en lugar de utilizar el modelo de ordenación predeterminado, ya que voy a mostrar a personas, estableceré que la ordenación sea por distancia social De este modo, en los resultados no solo mostraré a personas sino que la lista de personas se ordenará de acuerdo a con qué personas mantengo una distancia social más corta. Para hacer esto, utilizo la lista desplegable del Modelo de clasificación y selecciono Modelo de distancia social de búsqueda de personas de este modo:

Ahora puedo hacer clic en la pestaña Prueba y probar la nueva consulta. Siempre deberían mostrarse cero resultados porque no tiene ningún valor para la variable {subjectTerms}. Para realizar esta prouba con criterios de una consulta real, haga clic en el vínculo Mostrar más, luego escriba Ventas en el cuadro de edición de {subjectTerms}*: y haga clic en el botón Probar consulta. Yo hago esta prueba con distintos modelos de clasificación para asegurarme de que todo funciona como es debido (así es) y hago clic en el botón Aceptar para guardar los cambios realizados en la consulta.

Lo último que quiero hacer con la consulta es mostrar un vínculo en la parte inferior del bloque en el que se pueda hacer clic para buscar a todas las personas que trabajan en el Departamento que se encontró. Pero antes de proporcionar más detalles al respecto, les contaré algo para efectos de transparencia: tengo una imagen de los resultados finales, que mostraré dentro de un momento, en la que se ve un vínculo "MOSTRAR MÁS". Para esta publicación en particular, lo que hice fue combinar dos imágenes: una que tuviera el vínculo "MOSTRAR MÁS" y otra que no. El motivo es la inconsistencia del funcionamiento del vínculo "MOSTRAR MÁS" en la versión beta 2. La RTM debería hacer funcionar a todos los vínculos, pero, en mi caso, hay ocasiones en las que lo hace y muchas otras en las que no. Justo acabo de tomar una captura de pantalla de un conjunto de resultados anterior en el que estaba trabajando que la incluía. Hago esta puntualización para que no se frustren demasiado si están trabajando con fragmentos de la beta 2 y se encuentran con que en ocasiones no funciona correctamente.

Una vez dicho esto, para implementar la característica que he descrito en el párrafo anterior selecciono la opción vínculo "Más", que me lleva a la siguiente dirección URL, y escribo lo siguiente: peopleresults.aspx?k=Department:{subjectTerms}. También decido mostrar los tres resultados, y, como se describió anteriormente, establecer que se muestren en la parte superior de todos los resultados de la búsqueda. El diálogo Bloque de resultados completo se ve así:

Ahora que está finalizado puedo probarlo. Hago una consulta sobre "estrategia de gestión de ventas" y este es el aspecto de los resultados:

(Aquí es donde se muestra el vínculo "MOSTRAR MÁS" que tuve que pegar en esta fase del proceso). Lo que está bastante bien es que Rocky aparece en la parte superior de los resultados de la búsqueda porque en mi organización yo soy su Director, así que podemos ver que el algoritmo de clasificación por distancia social está funcionando. Si mantengo el mouse sobre cualquiera de las personas de los resultados puedo ver una lista de documentos que han publicado recientemente:

Finalmente, cuando hago clic en el vínculo MOSTRAR MÁS, me conduce a la página de resultados de la búsqueda de personas y en ella veo a todas las personas que trabajan en el Departamento de ventas. Al mantener el mouse sobre cualquiera de ellas puedo ver lo que han hecho, consultar la página del perfil, etc.

Y aquí se termina nuestro ejercicio. Hemos tomado una necesidad de cliente muy real y hemos utilizado las nuevas reglas de consulta y las características de importación de perfiles de SharePoint 2013 para crear una solución que no ha requerido ningún código en absoluto y que proporciona MUCHAS funciones. Espero que continúen observando reglas de consulta y trabajando con ellas.

Esta entrada de blog es una traducción. Puede encontrar el artículo original en Integrating People Metadata In Content Searches Using Query Rules in SharePoint 2013