SharePoint 2013 - Recherche – Présentation du contexte utilisateur (User Segmentation) (fr-FR)

SharePoint 2013 - Recherche – Présentation du contexte utilisateur (User Segmentation) (fr-FR)

Introduction

Cet article fait partie d’une série concernant la recherche de SharePoint 2013 :

Le "User Segmentation" est une nouveauté de SharePoint 2013 qui vous permet d’afficher des résultats de recherche en fonction d’attributs de l’utilisateur, attributs nommés "User Segments".

Quand je parle d’attributs, ce ne sont pas uniquement des attributs issus du profil de l’utilisateur, mais des attributs de tout type comme le type de navigateur utilisé; comme vous devez coder ce que vous choisissez être le critère, vous avez donc un champ d’action très large.

Le principe de fonctionnement est qu’une WebPart (que vous aurez développée) tentera de faire correspondre la valeur de l’attribut choisi avec la valeur d’un Term spécifié comme "User Segment" d’une Query Rule.

Si le Term est trouvé, son ID est passé à la requête et  l’action de la Query Rule est exécutée.

Note :  Si vous avez frôlé l’évanouissement et /ou n’avez rien compris aux 2 phrases précédentes, je vous conseille vivement d’aller lire l’article suivant : SharePoint 2013 : Recherche – Présentation des Query Rules,

Scénario choisi pour cet article

Je choisis pour cet article de me baser sur le champ "Fonction" des utilisateurs :

  • Attribut "Job Title" dans l’AD,
  • Nom interne "SPS-JobTitle" dans SharePoint.

J’afficherai un "Promoted Result" différent selon que la fonction de la personne soit un "Manager tyrannique" ou un "Sbire exploité".

Les étapes de mise en place

Les 3 étapes à suivre pour mettre en place ce système sont les suivantes :

  • Créer un Term pour chaque "User Segment",
  • Développer une webpart héritant de la ContentBySearchWebPart et qui prendra en compte ces Terms,
  • Créer une (ou plusieurs) query rule(s) pour traiter les différents "User Segment".

Etape 1 : Création des Terms relatifs aux "User Segments"

Créez via l’interface ou via code les Terms représentant les valeurs de la propriété sur lesquelles vous souhaitez vous baser, ici  "Manager tyrannique" et "Sbire exploité".

Vous pouvez créer ces Terms de plusieurs façons :

1. Par matching des propriétés utilisateur

Bonne nouvelle dans ce cas, SharePoint 2013 utilise par défaut un Term Set nommé "People" pour y stocker les valeurs des propriétés Department, Job Title et Location issues des User Profiles.

Et c’est précisément sur ce Term Set "Job Title" que je vais me baser pour cet article.

3

2. Par l’interface, via les "Site Settings" de votre collection de sites

3. Par code

NavigationTerm term = navigationTermSet.CreateTerm("Manager tyrannique", NavigationLinkType.FriendlyUrl, Guid.NewGuid());

Etape 2 : Création de la WebPart

Note : Si vous ne savez pas développer (ou n’avez pas envie, çà marche aussi dans ce cas), plusieurs articles du chapitre "Références" situé à la fin de cet article comporte des codes source Visual Studio prêts à l’emploi.

La webpart est à développer par vos soins, et vous aurez pour celle-ci à :

  • La faire hériter de la ContentBySearchWebPart

7

  • Implémenter la méthode "Onload" comme suit

8

  • Créer la méthode qui va tenter de matcher votre propriété avec un des Terms, en spécifiant la propriété à utiliser et le nom du Term Set

4

  • Compiler, builder, déployer votre wsp

6       

  • Insérer la WebPart sur une page, et insérez une seconde webpart (votre custom ou une "Content Search" que vous configurerez comme suit (elle récupère les résultats de votre webpart custom)

12

Etape 3 : Création de la ou des Query Rule(s)

Pour une présentation complète des Query Rules, vous pouvez consulter cet article : SharePoint 2013 : Recherche – Présentation des Query Rules.

1. Créez une Query Rule et cliquez sur "Add User Segment" dans la section encadrée ci-dessous

7

2. Saisissez un titre, et cliquez sur "Add user segment term"

7

 3. Sélectionnez votre Term et cliquez sur "Save" dans les 2 fenêtres

8

4. Dans la section "Query Conditions", cliquez sur "Remove Condition"

6

 Ce qui a pour effet de déclencher la règle sur toute les requêtes

7

 5. Ajoutez votre Promoted Result (ou autre) et cliquez sur "Save".

Au final :

9

 Ici, les "Manager tyrannique" se verront afficher une image de vacances au Bahamas, pendant que les "Sbire exploité" verront une image de "Pole Emploi", avec un … message d’encouragement :)        

Résultat

1. Je lance ma page en tant qu’"Administrator" (le manager), il voit bien l’image configurée dans ma Query Rule

10

 2. Je me connecte ensuite en tant que moi-même (le sbire !), et je vois bien mon image "personnalisée" …

11

       

Cas des accès anonyme

Je vous recommande la lecture de cet article de Waldek Mastykarz sur les problèmes d’utilisation du trio "Content Search WebPart / User Segments / Anonymous Search Results Cache".

En résumé :

it seems that at this moment it is not possible to use Anonymous Search Results Cache with User Segments.

Références

Leave a Comment
  • Please add 3 and 6 and type the answer here:
  • Post
Wiki - Revision Comment List(Revision Comment)
Sort by: Published Date | Most Recent | Most Useful
Comments
  • Benoit Jester edited Revision 2. Comment: Mise en page

  • Benoit Jester edited Revision 1. Comment: toc

  • Benoit Jester edited Original. Comment: Mise en page

Page 1 of 1 (3 items)
Wikis - Comment List
Sort by: Published Date | Most Recent | Most Useful
Posting comments is temporarily disabled until 10:00am PST on Saturday, December 14th. Thank you for your patience.
Comments
  • Benoit Jester edited Original. Comment: Mise en page

  • Benoit Jester edited Revision 1. Comment: toc

  • Benoit Jester edited Revision 2. Comment: Mise en page

Page 1 of 1 (3 items)