Article original publié le lundi 20 août 2012

J’avoue que ce titre est assez long et pompeux, j’en conviens. Mais de quoi Steve veut-il donc nous parler ici ? Eh bien, laissez-moi reformuler de cette manière. Il y a quelques jours, j’ai lu une question à peu près en ces termes : « Certains de mes collègues travaillent dans différents services au sein de mon organisation, comme le service Ventes, Finance, etc. Quand une personne entre une requête, par exemple, « ventes, gestion et argumentaire », j’aimerais pouvoir afficher également les employés qui travaillent dans le service Ventes. » Cela me semble une utilisation parfaite de la nouvelle fonctionnalité Règles de requête dans SharePoint 2013.

Pour commencer, revenons un peu en arrière et regardons de plus près une fonctionnalité d’activation liée que nous allons utiliser ici. Dans SharePoint 2013, quand vous importez un profil d’Active Directory, il renseigne automatiquement un ensemble de termes spécial dans le service de métadonnées gérées. En réalité, il crée un groupe principal intitulé « Personnes » et renseigne trois ensembles de termes : Service, Fonction et Emplacement (REMARQUE : je ne peux pas garantir que ces trois ensembles de termes seront encore présents lors de la livraison du produit, peut-être n’en contiendra-t-il que deux). Lors du processus d’importation de profil, chaque ensemble de termes est renseigné avec les valeurs uniques de tous les utilisateurs pour chacune de ces propriétés. Cela nous est d’un grand secours pour résoudre ce problème, car quand je regarde mon MMS, je m’aperçois que le service « Ventes » figure dans ma liste des services, étant donné que des utilisateurs possèdent cette valeur dans leur attribut Service dans AD :

 

Parfait, passons maintenant à la création d’une règle de requête. Comme je l’ai mentionné dans mon premier billet sur les règles de requête (http://blogs.msdn.com/b/sharepoint_fr/archive/2012/09/20/utilisation-des-r-232-gles-de-requ-234-te-des-types-de-r-233-sultats-et-des-mod-232-les-d-affichage-pour-un-rapport-commercial-de-recherche-personnalis-233-dans-sharepoint-2013.aspx), la première tâche que nous allons accomplir est de définir la condition de déclenchement de ma règle. Dans ce cas précis, nous allons utiliser l’option Correspondance de texte de requête avancée, et choisir la dernière sélection, à savoir La requête contient une entrée dans ce dictionnaire :. À présent, elle est dotée d’un sélecteur de liste déroulante, ce qui est regrettable, car c’est un peu trompeur. Ici, ce que nous souhaitons réellement faire est de cliquer sur le lien Importer à partir de la taxonomie situé juste en dessous. En effectuant cette action, nous voyons un sélecteur MMS standard. Je développe mon instance MMS locale et je clique sur l’ensemble de termes Service, car je veux que ma règle se déclenche lorsque le texte de requête contient un mot qui correspond à un service au sein de mon organisation.

Pour la partie suivante de ma règle, je coche les trois cases relatives à la recherche dans les ensembles de termes. Par conséquent, si une requête entière correspond au nom d’un service, ou si la requête commence ou termine par le nom d’un service, je souhaite que ma règle se déclenche. Pour terminer, en ce qui concerne la dernière partie de la configuration de la règle, s’il existe une correspondance, je souhaite attribuer la correspondance à {subjectTerms}, et les termes restants à {actionTerms}. Si nous reprenons l’exemple précédent, « ventes, gestion et argumentaire », étant donné que les termes de la requête commencent par « ventes », ce qui correspond à une valeur de service valide dans MMS, ma règle de requête doit concorder (« ventes » est le {subjectTerms} et « gestion et argumentaire » sont les {actionTerms}). Voici à quoi ressemble la configuration :

Maintenant, quand ma requête se déclenche, je veux ajouter des personnes du service Ventes en haut des résultats de la requête. Je commence donc à créer la partie suivante de ma requête, à savoir l’action que je vais entreprendre ensuite. Je clique sur le lien Ajouter un bloc de résultat et ouvre cette boîte de dialogue. Dans ce cas, je veux ajouter un bloc de résultat qui affiche les résultats de la recherche de personnes. La première tâche que j’effectue est de cliquer sur la liste déroulante Rechercher dans cette source et changer l’option Source d’origine de la requête en Résultats de la recherche de personnes locales (système). J’effectue cette étape en premier pour que le Générateur de requêtes utilise cette source quand je modifie et teste la requête. Une fois cette opération terminée, en fonction de ma règle de correspondance, je sais que n’importe quel service trouvé sera dans l’ensemble de termes spécial « {subjectTerms} ». Afin de l’utiliser, je clique sur le bouton Lancer le Générateur de requêtes afin de modifier la requête. Je supprime le texte existant qui figure dans la zone de modification du texte de la requête, je clique sur la liste déroulante des filtres de propriétés, puis sur l’option --Afficher toutes les propriétés gérées--. Cette action a pour effet de renseigner la liste déroulante avec toutes les propriétés gérées, et je sélectionne Service dans cette liste. Dans la liste déroulante du qualificateur, je remplace l’option « Contient » par « Est égal à ». Dans la liste déroulante Sélectionner une valeur, je choisis {subjectTerms} – l’entrée de dictionnaire correspondante dans Service, puis je clique sur le bouton Ajouter un filtre de propriétés. Le résultat doit ressembler à ce qui suit :

Nous avançons à grands pas. Je souhaite maintenant apporter une touche plus personnelle à ma requête. Pour ce faire, je clique sur l’onglet Tri dans le Générateur de requêtes. Dans ce cas, plutôt que d’utiliser le modèle de tri par défaut, étant donné que je vais afficher des personnes, je vais effectuer un tri par distance sociale. J’afficherai ainsi les personnes dans les résultats, mais cette liste sera organisée en fonction de leur distance sociale par rapport à moi, du plus proche au plus éloigné. Pour ce faire, je vais simplement utiliser la liste déroulante Modèle de classement et sélectionner Modèle de distance sociale de la recherche de personnes, comme suit :

Je peux maintenant cliquer sur l’onglet Test et essayer ma nouvelle requête. Vous ne devez voir aucun résultat par défaut, car aucune valeur n’est définie pour la variable {subjectTerms}. Pour la tester avec des critères de requête réels, je clique sur le lien Afficher plus, je tape « ventes » dans la zone d’édition {subjectTerms}*:, puis je clique sur le bouton Tester la requête. Je la teste avec différents modèles de classement pour m’assurer quelle fonctionne comme prévu (et c’est le cas). Je clique donc sur le bouton OK pour enregistrer les modifications apportées à ma requête.

La dernière modification que je souhaite apporter à ma règle de requête est d’afficher un lien sous mon bloc pour qu’un individu puisse rechercher toutes les personnes qui travaillent, quel que soit le service trouvé. Avant d’aller plus loin, je vais partager avec vous une astuce à diffuser le plus largement possible (j’ai une image que je dévoilerai vers la fin, et vous pourrez remarquer la présence d’un lien AFFICHER PLUS). Pour ce billet, j’ai combiné deux images en fait, une qui possède le lien « AFFICHER PLUS » et une qui ne l’a pas. La raison est très simple : la fonctionnalité de lien « AFFICHER PLUS » est instable dans la bêta 2. Tous les problèmes devraient être résolus dans la version finale, mais pour l’instant, elle apparaît parfois, mais dans la plupart du temps, elle ne s’affiche pas. J’ai réussi à prendre une capture d’écran d’un ancien ensemble de résultats sur lequel je travaillais que j’ai incluse. Je précise ce point ici pour que vous ne vous sentiez pas frustrés si vous travaillez sur la bêta 2 et que le lien n’apparaît pas tout le temps.

Ceci étant dit, afin d’implémenter la fonctionnalité que j’ai décrite dans le paragraphe précédent, je sélectionne l’option « Le lien Plus pointe vers l’URL suivante », puis entrez l’URL suivante : peopleresults.aspx?k=Service:{subjectTerms}. J’ai également décidé d’afficher trois correspondances, et comme décrit plus haut, de les afficher en haut de la liste des résultats de la recherche. Ma boîte de dialogue Bloc de résultats complète ressemble à ce qui suit :

Une fois cette étape terminée, je peux la tester. Je formule donc la requête « ventes, gestion et argumentaire », et j’obtiens le résultat suivant :

(Notez que vous devez voir le lien « AFFICHER PLUS », que j’ai dû coller dans cette illustration). Cette fonctionnalité est plutôt intéressante, car Rocky apparaît en premier dans les résultats de la recherche, car au sein de mon organisation, je suis son responsable. Nous pouvons donc voir l’algorithme de classement selon la distance sociale à l’œuvre. Quand je pointe sur l’une des personnes figurant dans les résultats, une liste de documents qu’ils ont récemment publiés s’affiche :

Pour terminer, quand je clique sur le lien AFFICHER PLUS, j’accède à la page des résultats de la recherche de personnes, et je peux consulter la liste des personnes qui travaillent dans le service Ventes. Quand je pointe sur l’une de ces personnes, je peux voir ce qu’ils ont réalisé, afficher leur page de profil, etc.

Ainsi se termine notre exercice. Nous nous somme basés sur le besoin réel d’un client et nous avons utilisé les nouvelles fonctionnalités de règles de requête et d’importation de profil dans SharePoint 2013 pour créer une solution qui ne nécessite aucun code, mais qui offre de NOMBREUSES possibilités. J’espère que vous allez continuer à approfondir et utiliser les règles de requête.

Ce billet de blog a été traduit de l’anglais. Vous trouverez la version originale sur Integrating People Metadata In Content Searches Using Query Rules in SharePoint 2013